美文网首页Swift自学之路
自学Swift之方法声明

自学Swift之方法声明

作者: _谨 | 来源:发表于2015-08-09 22:24 被阅读1136次
  • 在 Swift 中声明方法的关键字 是 func
- 格式 `func 函数名称(参数...) -> 返回类型`
- 没有返回值的话 `-> ` 它以及后面的类型是不需要的
  • 函数的声明
    • 没有参数,没有返回值

func sayHello()
{
print("hello word")
}

    - 有参数,没有返回值
        * ````objc
func sayHello(name: String)
{
           print("hello, \(name)")
}
// 参数可以添加默认值
func sayHello(name: String = "Swift")
{
           print("hello \(name)") // 不传递参数使用默认值
}
- 有参数,有返回值
    * ````objc

func sayHello(name: String) -> String
{
return "hello, (name)"
}
print(sayHello("Swift")) // 输出 hello, Swift

    - 可变参数
        * ````objc
func test(number:Int...) // 类型后面加上...  number的类型会成为一个Int类型的数组
{
                for num: Int in number
                {
                    print(num)
                }
}
test(1,2,3,4,5)  // 循环输出 1   2   3   4   5 

  • 函数作为参数或者返回值
// 函数作为参数或者返回值
// swift 能使用中文当做方法名或者变
func 加法(a: Int, b: Int) -> Int   量名
{
    return a + b
}
func 减法(a: Int, b: Int) -> Int
{
    return a - b
}

var 加 = 加法     // 加上() 是调用方法


// 方法作为参数
func test(a: Int, b: Int, function: (Int,Int) -> Int ) -> Int
{
    return function(a,b)
}
print(test(10, b: 1, function: 加))


// 方法作为返回值
func test(a: Int, b: Int, isTrue: Bool) -> Int
{
    return isTrue ? 减法(a, b: b) : 加法(a, b: b)
}
print(test(10, b: 20, isTrue: false))

在方法内部改变外面参数的值使用到的关键字是 inout

var number = 1
func test(inout a:Int)
{
    a = 100
}
test(&number)   // 发现方法参数前面出现了 `&`,取地址符,有oc功底的人应该明白 inout关键字的实现方式了吧...没错就是地址传递!
print(number)   // 输出 100

为参数起 别名

func sayHello(姓名 name: String) //`姓名`就是`别名`
{
    print("hello \(name)")
}
sayHello(姓名: "Swift")       // 调用方法的时候`别名`不能省略

相关文章

网友评论

    本文标题:自学Swift之方法声明

    本文链接:https://www.haomeiwen.com/subject/eghiqttx.html