01-函数

本文介绍了Swift语言的基本用法,包括函数定义、参数传递、变量声明等内容,并详细解释了不同类型的函数及参数特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前已经看过一些swift2,所以基本数据类型之类的就自动忽略了,直接从函数开始学习,不定期更新.
  • 无参函数
func printaa(){
    print("aa")
}
printaa();

运行结果

aa
  • 空函数
func fun(){}
fun()

运行结果

  • 有参函数
func printStr(Name: String){
    print(Name)
}
let name1 = "Tom"
printStr(name1);

运行结果

Tom
  • var: 定义变量
  • let: 定义常量
func range(start: Int, end: Int){
    var i = start
    let e = end
    for i; i < e; ++i{
        print(i)
    }
}
range(10, end: 15)

运行结果

10
11
12
13
14
  • 本地参数名
    • 就是定义函数名时,在参数列表中所写的参数名,它只可以在函数主体内使用
func fun2(statr: Int, end: Int, str: String){

}
  • 外部参数名
    • 在函数中,如果每一个参数的目的不是很明确或者是含糊不清的,那么对于其他开发者来说,是很 难理解参数的目的。
    • 外部参数和本地参数的定义是 一样的。但是如果开发者需要更好的表达参数的功能,需要在定义时使用外部参数名。外部参数名需要
      写在本地参数名之前,并使用空格将其分开
func join(s1: String, toString s2: String, joiner s3: String){
    print("\(s1)\(s3)\(s2)")
}
join("ss", toString: "qq", joiner: "gg")

运行结果

ssggqq
  • 设定参数默认值
    • 注意:在使用默认值是需要注意以下几点:
      • (1)定义时,将使用默认值的参数放在函数的参数列表的末尾。这确保了调用函数时候, 不会因 为省略参数值而影响不具备默认值的参数的顺序。
      • (2)调用时,如果参数的默认值已经被设置,可以省略该参数的传值。
      • (3)如果开发者设定了默认值,但在调用时想要改变默认值,也可以继续赋值。
func fun3(str: String, start: Int = 0, end: Int = 3){
            var i = start
            let e = end
            for i; i < e; ++i{
                print(str + "--\(i)")
            }
}
fun3("aaa")
fun3("adsf", start: 10, end: 12)

运行结果

aaa--0
aaa--1
aaa--2
adsf--10
adsf--11
  • 为外部参数设默认值
func join2(s1: String, toString s2: String, joiner s3: String = "gg"){
    print("\(s1)\(s3)\(s2)")
}
join2("ll", toString: "qq")

运行结果

llggqq
  • 可变参数, 参数个数不确定
    • 在类型后面加三个点就是可变参数
    • 在使用可变参数时,在一个函数中,可变参数只可以有一个。否则,就会出现错误。
func average(numbers: Double...){
    var total: Double = 0;
    for number in numbers{
    total += number;
    }
    print(total)
}
average(1, 3, 5);

运行结果

3.0
  • 常量参数和变量参数
    • 在函数中,参数默认都是常量。如果想要改变一个函数参数的值,会引起程序错误
    • 变量参数 的定义就是在参数名前使用一个 var 关键字
func alignRight(var string: String, col: Int, pad: String){
        let cs = string.characters.count;
        let padC = col - cs
        for _ in 1...padC{
            string = pad + string;
        }
        print(string)
}

alignRight("lq", col: 10, pad: "*")
alignRight("xxx", col: 10, pad: "*")
alignRight("xxxaaaddd", col: 10, pad: "*")

运行结果

********lq
*******xxx
*xxxaaaddd
  • 输入-输出参数
    • 设有两个整数a和b ,当需要交换a, b两个函数的值的时候,普通的参数,只能实现函数内部交换,函数外面的值不变,只有使用输入-输出参数才能完成交换
    • 使用输入-输出参数定义函数时,只需在普通参数前面加上inout
    • 调用函数时,需要在参数前面加上&否则会报错
func swip(inout a: Int, inout b: Int){
    let temp = a
    a = b
    b = temp
}
var a = 10;
var b = 20;
print("a=\(a), b=\(b)")
swip(&a, b: &b)
print("a=\(a), b=\(b)")

运行结果:

a=10, b=20
a=20, b=10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值