var str = "Hello, playground"
// 函数
// 语法格式
//func name (参数列表)->返回值 {
// 函数实现体
//}
//无参,无返回值
func hello1() {
print("hello1")
}
func hello2() -> Void {
print("hello2")
}
// 函数调用
hello1()
// 有参
// 1.关于内部参数名
// 只在函数作用域内部使用的参数名
func hello3Name(name:String, name2:String) {
print("你好\(name) and \(name2)")
}
// 除了第一个参数,后面的参数在调用的时候会自动生成一个与内部参数名相同的外部参数名
// 原则上,第一个参数的外部参数名应该写在函数名的末尾
hello3Name("李云龙", name2: "楚云飞")
func hello4Name (mingzi1 name:String, mingzi2 name2:String) {
print("你好\(name) and \(name2)")
}
// 外部参数名的添加规则,在内部参数名前面声明中间用空格隔开
hello4Name(mingzi1: "李云龙", mingzi2: "楚云飞")
// 使用占位符_, 省略掉自动生成的外部参数名
func hello5 (name:String, _ name2:String){
print("你好\(name) and \(name2)")
}
hello5("李云龙", "楚云飞")
// 可以为参数赋初始值,调用时传参则更改,不传参使用初始值
func hello6 (name:String = "李云龙", name2:String = "楚云飞"){
print("你好\(name) and \(name2)")
}
hello6()
hello6(name2: "仝兴伟")
// ***************关于参数 到此结束
// 有返回值情况
// 返回值直接给类型
func byebye1() -> String {
return "xiake"
}
byebye1()
func byebye2(number1:String) -> (Int, Int) {
var num1 = 0
var num2 = 0
for tempStr in number1.characters{
switch tempStr{
case "a", "e", "i", "o", "u":
num1++
default:
num2++
}
}
return (num1, num2)
}
byebye2("aasgfas")
// 不确定参数个数, 参数个数可变
func count1 (numbers:Int...) -> Int {
var sum = 0
// 不确定个数的参数作为数组使用
for num in numbers {
sum += num
}
return sum
}
count1(1,2,33,5,43,3)
// 参数在函数体内是不可变的,用var修饰之后才可变
func count3 (var a:Int, b:Int) -> Int {
a = a + b
return a
}
var c = 10
c = count3(c, b: 0)
c
// inout 修饰参数,将外部变量的地址传进来,从而改变外部变量的值
func changValue (inout a: Int) {
a++
}
changValue(&c)
c
Swift高级开发语言--函数
最新推荐文章于 2024-07-24 06:12:13 发布