zoukankan      html  css  js  c++  java
  • 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))
    
  • 相关阅读:
    Emit介绍【转】
    在.NET中使用反射实现简易插件机制【转】
    RabbitMQ笔记-Qos与消息应答
    Http级别缓存助手类(ASP.Net Core)
    实现一个迷你IOC容器
    使用CMake在Windows环境下的VS2019中配置openCV
    如何在Visual Studio 2019中启动并配置一个使用pyTorch的C++项目(Windows系统,CMAKE项目)
    windows环境下使用python中tensorflow的tensorboard功能无法创建指定路径的问题
    使用python的selenium库自动填写网页(疫情每日一报)
    十进制转换二进制toBinaryString源码分析
  • 原文地址:https://www.cnblogs.com/aunty/p/4939657.html
Copyright © 2011-2022 走看看