美文网首页
Swift4 基础学习

Swift4 基础学习

作者: Saylor_Lone | 来源:发表于2018-01-02 13:29 被阅读29次

    注释

    单行形式:
    //第一行注释
    //第二行注释
    
    多行形式:
    /*
    这里是注释的多行形式
    想写什么都可以
    ...
    */
    
    嵌套形式:
    /*
      外层注释
      balabala...
      /*
        内层注释
        balabala...
      */
      
    */
    

    打印

    /*
      控制台打印,如果你喜欢文件形式可以研究下重定向。
      忘掉 NSLog(@"balabala...") 蹩脚的语法吧
    */
    print("不用再写@了,幸福")
    
    //源文件中的定义
    public func print(_ items: Any..., separator: String = default, terminator: String = default)
    public func print<Target>(_ items: Any..., separator: String = default, terminator: String = default, to output: inout Target) where Target : TextOutputStream
    
    /*
    从这里开始,需要注意了。相较于OC,语句的结尾再也不用带上拖油瓶了 对就是它 ";"
    另外,print 函数也体现了Swift下重载的概念。
    那些让你觉得蒙蒙的字符,这里剧透下。
    <Target> //泛型
    _ //忽略符,这里用于隐去外部参数名 
    inout //还记得传址参数的概念么,该关键字就是用来表明这种行为的。
    Any //public typealias Any = protocol<> ,Swift中任何类型(如Int、String、Struct、Enum...)都会遵循这个协议,反过来说Any可以用来表示任何类型。
    ... //表示可变参数
    //eg: (to output: inout Target) 关于内部参数名和外部参数名
    // to 是外部参数名,表示外部在调用此函数时必须显式的携带to这个参数名。
    // output 是内部参数名,表示函数实体内部使用此参数名进行调用。 
    */
    

    基础运算符 常见的加减乘除Swift当然也要有

    eg.: 1 + 2
    eg.: 3- 2
    eg.: 3*6 / eg.: 4/5
    这里停顿下,这些操作符很简单吧 但是上面的例子是有错误的,是语法错误。
    
    + eg.: 1 + 2  
    - eg.: 3- 2  // Error
    * eg.: 3*6
    / eg.: 4/5
    
    /*
    这个问题涉及到操作符的 关联性 associativity 和 优先级 precedence.(自定义操作符的时候,你会体会深刻) 
    
    运算符使用的位置: prefix、infix、postfix 
    associativity 有三个值:left、right、none
    precedence 默认值是:100
    
    示例中操作符属于infix,所以swift 建议在操作符前后添加空格或移除掉空格。这应该是编译器特性导致的,所以要有一定规范。
    */
    
    //浮点型计算
    22.0 / 7.0 
    //除余计算
    28 % 10 
    // (等同于上面的表达式)
    (28.0).truncatingRemainder(dividingBy: 10.0)
    
    /*
    移位操作 这个有基础的应该都了解了
    这里主要说一下,移位运算相对于其它操作会高效。
    */
    <<、>>  
    
    /*
    运算符的优先级及结合方向(这一点和其它编程语言以及数学上概念没有不同)
    明智的做法是,在表达式中嵌入()显式的为编译器提供运算依据。
    */
    ((8000 / (5 * 10)) - 32) >> (29 % 5)
    350 / 5 + 2
    350 / (5 + 2)
    
    //数学函数
    sin(45 * Double.pi / 180)    //正弦函数
    cos(135 * Double.pi / 180)   //余弦函数
    (2.0).squareRoot()           //平方根
    max(5, 10)                   //双值最大数
    min(-5, -10)                 //双值最小数
    
    //eg.:
    max((2.0).squareRoot(), Double.pi / 2)
    
    //命名空间 相关
    
    /*
    在Swift中使用Unicode characters命名是合法的。
    命名语法
    var variableNumber: Int = 42 
    这里啰嗦几句
    var 关键字表示变量
    variableNumber 变量名
    : Int 表示类型约束,这种约束语法在Swift中大量存在。这里表明,声明的类型是整型
    
    虽然使用任意字符进行命名是合法的,但是还是别过火哦  毕竟代码可能别人也会看,需要起有意思的名字。另外驼峰命名法也是不错的规范~~~
    
    */
    //复合运算符
    var counter: Int = 0
    counter += 1
    counter -= 1
    
    //等同于
    var counter: Int = 0
    counter = counter + 1
    counter = counter - 1
    
    counter = 10
    counter *= 3
    counter /= 2
    
    let a = 3 //常量 let 关键字 
    

    Tip:来丰富下英文词汇

    Add: +
    Subtract: -
    Multiply: *
    Divide: /
    Remainder: %
    Add and assign: +=
    Subtract and assign: -=
    Multiply and assign: *=
    Divide and assign: /=
    

    相关文章

      网友评论

          本文标题:Swift4 基础学习

          本文链接:https://www.haomeiwen.com/subject/yibfnxtx.html