zoukankan      html  css  js  c++  java
  • swift基本示例

     新建一个CommandLine Tool

    1、输出helloworld

    /* 我的第一个 Swift 程序 */
    var myString = "Hello, World!"
     
    print(myString)

     2、数值类型

    var a=1
    var b=2
    print(a+2)

    ///3

    3、字符串类型

    var a="1"
    var b="2"
    print(a+ b)

    //错误

    必须写成

    print(a+b)

    或者

    print(a + b)

    3、空类型nil

    var b:String? = nil

    显示数据

    var b:String?=nil;
    print(b!);

    (lldb) 

    4、可选绑定

    使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。

    像下面这样在if语句中写一个可选绑定:

    if let constantName = someOptional {
        statements
    }

    5、let使用

    var a="1";
    a="2";
    print(a);

    使用var可以修改值

    如果换成let是常量不可以修改

    let a="1";
    a="2";
    print(a);

    //错误

    另外常量必须事先定义

    6、字面量

    字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。

    7、运算符

    和C语言的基本类似

    8、区间运算符

    print("闭区间运算符:")
    for index in 1...5 {
        print("(index) * 5 = (index * 5)")
    }
    
    print("半开区间运算符:")
    for index in 1..<5 {
        print("(index) * 5 = (index * 5)")
    }

    7、循环

    for(int a = 0;a < 3;a++)
    print(a);

    Swift3 中已不再支持以上for循环,使用以下方式

    for a in 1...3 {
    print(a);
    }

    输出

    1
    2
    3

    8、fallthrough 在swift中不加break也不会执行下一个case语句,需要加fallthrough才执行

    var index = 10
    
    switch index {
       case 100  :
          print( "index 的值为 100")
       case 10,15  :
          print( "index 的值为 10 或 15")
       case 5  :
          print( "index 的值为 5")
       default :
          print( "默认 case")
    }

    将会执行case 10,15 5两个分支

    9、Swift中的字符类型不能使用单引号,比如

    var a='1'
    print(a)

    是错误的

    let a: Character = "A"

    这样才行

    10、数组

    var a:[Int] = [10, 20, 30]
    var a = [Int](repeating: 0, count: 3)

    11、字典类型

    var a=  [Int: String]()

    12、函数写法

    func test(obj: String) -> String {
        return (obj)
    }

    如果没有inout内部不能从新赋值

    // 定义一个交换两个变量的函数
    func swapTwoInts(_ a:inout Int, _ b: inout Int) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
    
    var numb1 = 100
    var numb2 = 200
    
    print("交换前数据: (numb1) 和 (numb2)")
    swapTwoInts(&numb1, &numb2)
    print("交换后数据: (numb1) 和 (numb2)")

    如果不加_,需要在调用前指定参数名,如

    import Foundation
    // 定义一个交换两个变量的函数
    func swapTwoInts(_ a:inout Int, b: inout Int) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
    
    var numb1 = 100
    var numb2 = 200
    
    print("交换前数据: (numb1) 和 (numb2)")
    swapTwoInts(&numb1, b:&numb2)
    print("交换后数据: (numb1) 和 (numb2)")

    13、扩展方法

    extension Int {
       var add: Int {return self + 100 }
       var sub: Int { return self - 10 }
       var mul: Int { return self * 10 }
       var div: Int { return self / 5 }
    }

    14、下划线作用,增强可读性,忽略值等作用

    let oneMillion = 1_000_000

    let http404Error = (404, "Not Found")   
    let (_, errorMessage) = http404Error 


    let base = 3   
    let power = 10   
    var answer = 1   
    for _ in 1...power {   
        answer *= base   
    }  

    参考:

    https://www.runoob.com/swift/swift-functions.html

    https://www.jianshu.com/p/fcdfc8306a94

  • 相关阅读:
    AspNetPager分页控件
    Asp.Net MVC 路由表
    自动检测海岸线,生成海浪网格
    斜坡刷子,一种好用的地形编辑方式
    用NVPerfHud4剖析Farcry的绘制过程
    初学BSP,上一些测试数据
    让游戏通过红蓝立体眼镜展现立体效果
    没有贴图拉伸的陡峭悬崖
    刚刚做的Bloom(伪HDR)效果
    近两个礼拜地图编辑器的一些进展
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/12386858.html
Copyright © 2011-2022 走看看