• Swift入门 二


    字符串

    • OC 中的字符串是一个对象,Swift中的字符串是一个结构体
    • OC 中的字符串是以结尾, Swift中的字符串不是以结尾
    • Swift中的字符串比OC中的字符串性能好
    • Swift中的字符串支持遍历
    let str = "abcdef"
    print(str)
    

     遍历字符串

    for c in str.characters
    {
        print(c)
    }

    拼接字符串

    var str2 = "gm"
    str2 += str
    str2
    

     格式化

    let name = "gm"
    let age = 30
    let res = "name = (name),age = (age)" // 结果: name = gm, age = 30
    

     日期

    // 2015-01-03 14:05:06
    let res2 = String(format: "%d-%02d-%02d %02d:%02d:%02d", arguments: [2015, 1, 3, 14, 5, 6])
    

     字符串截取

    let str = "gmm521"
    //Swift中的大部分数据类型, 都支持直接转换为OC中的数据类型 . 例如String --> NSString
    let res = (str as NSString).substringWithRange(NSMakeRange(0, 3))  // 结果:gmm

    函数

    格式: func 函数名称(形参名称1: 形参类型, ...) -> 返回值类型

      {

        //逻辑代码

      }

    没有参数没有返回值

    • 如果返回值为Void,那么可以简写为() 或者不写
    func say() ->Void
    {
      print("hello world")
    }
    say()
    
    func say() ->()
    {
      print("hello world")
    }
    func say()  //推荐 {    print("hello world") }

    没有参数有返回值

    func getNum() -> Int
    {
      return 10
    }
    print(getNum())
    
    func getTwoNum() -> (Int, Int)
    {
      return (1, 10)
    }
    let (min, max) = getTwoNum()
    
    print(min)
    print(max)
    

    有参数没有返回值

    func sum(num1: Int, num2: Int)
    {
      print(num1 + num2)
    }
    sum(10, num2: 20) 
    • 内部参数: 默认情况下,所有的形参都是内部参数
    • 外部参数: swift2.0 之后,默认情况下从第二个形参开始,形参既是内部参数又是外部参数
    • 如何指定外部参数 value2  num2: Int
    • 如何忽略外部参数 _ num2: Int

    常量形参和变量形参

    • 默认情况下,所有的形参都是常量形参,也就是说不能在函数中修改形参的值
    • 如果想在函数中修改形参的值,那么必须把形参变为变量形参
    • 只需要在变量名称前面加上 var即可
    • 在函数中修改形参的值,是不会影响到外部形参的值
    for swap(var num1: Int, var num2: Int)
    {
        let temp = num1
        num1 = num2
        num2 = temp
    }
    let a = 10
    let b = 20
    print("a = (a), b = (b)") //a = 10 b = 20
    swap(a, num2:b)
    print("a = (a), b = (b)") //a = 10 b = 20

    输入输出参数

    • 如果想在函数中修改形参的值,并且同时修改实参的值,那么就需要将形参变为输入输出形参
    • 只需要在形参名称前面加上inout即可
    func swap2(inout num1: Int, inout num2: Int)
    {
        let temp = num1
        num1 = num2
        num2 = temp
    }
    var n = 10
    var m = 20
    print("n = (n), m = (m)") // n = 10 m = 20
    swap2(&n, num2: &m)
    print("n = (n), m = (m)") // n = 20 m = 10

    可变参数

    • 当一个函数不确定接收多少个参数时,就可以使用可变参数
    • 可变参数必须指定数据类型
    • 在其他语言中可能可变参数只能放到形参列表的最后面,而Swift中可以放到任意位置
    func sum(numbers: Int...)
    {
      var sum = 0
      for number in numbers
      {
         sum += number
      }
      print(sum) 
    }
    sum(10,20)
    
    func sum4(numbers: Int..., value: Int)
    {
      var sum = value
      for number in numbers
      {
        sum += number
      }
      print(sum)
    }
    sum(10, 20, value: 30)
    

    默认值

    • 可以给形参指定默认值,如果一个形参指定了默认值,那么调用的时候就可以不传递该参数的值,如果没有传递那么就是用默认值
    • 在其他语言中默认值只能写在形参列表的最后面,但swift中可以写在任意的位置
    func joinString( str: String = "gm" ,str1: String = "@" ,str2: String)
    {
      let sum = str + str1 + str2
    }
    

    有参数有返回值

    func sum(num1: Int, num2: Int) -> Int
    {
      return num1 + num2
    }
    print(sum(20, num2: 20))
    
  • 相关阅读:
    JavaScript的作用域
    background的水平条纹和斜向条纹
    CSS currentColor 变量的使用
    pop()和attr()的用法和区别
    指向构造函数的属性值
    OKHTTP缓存max-age和max-stale详解
    js数据类型
    css两列布局之基于BFC规则实现
    vue中央事件总线eventBus的简单理解和使用
    git push 时提示用户名或密码相关错误信息
  • 原文地址:https://www.cnblogs.com/aunty/p/4939657.html
Copyright © 2020-2023  润新知