zoukankan      html  css  js  c++  java
  • Swift入门篇-基本类型(2)

         现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 。他们这种对新知识的探索精神我本人是很佩服的。但是我也觉得语言都没有发布几天,就赶忙去翻译书籍和Swift视频,然后讲SWift语言多么优美和多么好。我个人觉得他们都没有静下心来,去敲代码和研究Swift语言到底好在那里,而急于去翻译 未免也太草率了。

      今天主要分享的是 swift中基本类型的 下半部分。如果您对 SWift 中变量和常量 不是很清楚 请移步到 Swift入门篇-基本类型(1)

      一:定义指定类型的变量

        格式:
         var  变量 : 类型  = 变量值
    
       解释:
         直接定义变量的类型(而不是通过变量值 来推断 变量类型)

    例子:

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    var A:Int = 10 //直接定义 变量A 的类型为整形
    println("A=(A)")
    
    var B:Bool = true//直接定义 变量B 的类型为布尔类型
    println("B=(B)")
    
    var C:String = "SWIFT" //直接定义 变量C 的类型为字符串类型
    println("C=(C)")

    运行结果

    A=10
    B=true
    C=SWIFT

     二:定义指定类型的常量

       格式:
    
         let  常量 : 类型  = 常量值
    
       解释:
         直接定义常量的类型(而不是通过常量值 来推断 常量类型)

    例子:

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    let A:Int = 10 //直接定义 常量A 的类型为整形
    println("A=(A)")
    
    let B:Bool = true//直接定义 常量B 的类型为布尔类型
    println("B=(B)")
    
    let  C:String = "SWIFT" //直接定义 常量C 的类型为字符串类型
    println("C=(C)")

    运行结果

    A=10
    B=true
    C=SWIFT

    注意点:

    var A = 10 和var A:Int = 10 的区别?
    
    var A =10 //编译器直接通过 变量值 10 来推断 变量A 的类型是整形
    
    var A:Int = 10 //直接指定 A 的类型是整形

    三:数据类型

    ①:进制表现方式


    格式:

      十进制数,无前缀   二进制数,以 0b 为前缀   八进制数,以 0o 为前缀   十六进制数,以 0x 为前缀

    注意:
    定义的变量或常量 存储值为十进制。

    例子:

      1:十进制表现方式

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    
    var A = 10
    /*
    1:变量值10 无前缀 表示十进制
    2:变量或常量存储的值必须为十进制
    3:10是十进制直接赋值给变量A
    */
    
    println("A=(A)")

    运行结果

    A=10

      2:二进制表现方式:

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var B = 0b1010
    /*
    1:变量值0b1010 前缀0b表示二进制
    
    2: 变量或常量储存的值必须为十进制
    
    3:二进制1010 转换为十进制的之后,赋值给变量B
    
    */
    
    
    println("B=(B)")

    运行结果

    B=10

      3:八进制表现方式

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    
    var C = 0o12
    /*
    1:变量值0o12 前缀是0o 八进制
    2: 变量或常量储存的值必须为十进制
    3: 八进制12 转换为十进制之后,在赋值给变量C
    */
    println("C=(C)")

    运行结果

    C=10

      4:十六进制

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    
    var D = 0xA
    /*
    1:变量值0xA 前缀是0x 十六进制
    2: 变量或常量储存的值必须为十进制
    3: 十六进制A 转换为十进制之后,在赋值给变量C
    */
    println("D=(D)")

    运行结果

    D=10

     ②:整形变现形式

        整形 :有符号和无符号类型

        有符号类型:Int ,Int8 ,Int32,Int64

        无符号类型: UInt ,UInt8 UInt32,UInt64

        注意点:如果你的开发环境是32位,那么Int = Int32

                   如果你的开发环境是64位,那么Int = Int64

        如果你使用mac OS X Yosemite 10.10和Xcode 6.0 Bate 那么你的系统是64位的

    例子:

       有符号的整形

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A:Int = 10//定义 有符号的整形变量
    
    var B:Int8 = 10 //定义 有符号8位的整形变量
    
    var C:Int32 = 10 //定义 有符号的32位的整形变量
    
    var D:Int64 = 10 //定义  有符号的64位的整形变量
    
    println("A=(A)")
    println("B=(B)")
    println("C=(C)")
    println("D=(D)")

      运行结果

    A=10
    B=10
    C=10
    D=10

      无符号的变量定义

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A:UInt = 10//定义 无符号的整形变量
    
    var B:UInt8 = 10 //定义 无符号8位的整形变量
    
    var C:UInt32 = 10 //定义 无符号的32位的整形变量
    
    var D:UInt64 = 10 //定义  无符号的64位的整形变量
    
    println("A=(A)")
    println("B=(B)")
    println("C=(C)")
    println("D=(D)")

      运行结果

    A=10
    B=10
    C=10
    D=10

    1:有符号和无符号的整形的区别;

    说明:无符号的定义的变量值必须为整数,有符号的定义的变量值可以为整数也可以为负数

    注意点

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    var A:Int = 10 //写法正确:  A 为有符号整形变量,值可以是整数和负数
    
    var B:Int = -10// 写法正确:  B为有符号整形变量,值可以是整数和负数
    
    var C:UInt = 10//写法正确: C 为无符号整形变量 值必须为整形
    
    var D:UInt = -10 //写法错误  C 为无符号整形变量 值不能为负数

    2:有符号和符号的取值范围

    import Foundation
    
    
    
    
    
    
    var UInt8Min = UInt8.min //UInt8.min 是求UInt8的最小值
    var UInt8Max = UInt8.max //UInt8.max 是求UInt8的最大值
    
    println("UInt8Min=(UInt8Min),UInt8Max=(UInt8Max)")
    
    
    var Int8Min = Int8.min //UInt8.min 是求UInt8的最小值
    var Int8Max = Int8.max //UInt8.max 是求UInt8的最大值
    
    println("Int8Min=(Int8Min),Int8Max=(Int8Max)")

    运行结果

    UInt8Min=0,UInt8Max=255

    Int8Min=-128,Int8Max=127

    其他Int,UInt的取值范围和上述一直,这里就不介绍了。

    注意的是: 在给UInt8 和Int 8赋值的时候 千万不要操作他的取值范围。

    例子

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    
    var A:Int8 = 10 //正确 A的取值是10 在 -128至127范围
    
    var B:Int8 =300 //错误;B的取值是300 超过 -128至127范围

    浮点类型;

     浮点类型分为;Float ,Double 

     说明: Double的取值范围大于Float类型,并且系统默认是Double类型

    例子:

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A = 12.1 // A是浮点类型 ,没有明确指定类型,系统默认认为是Double类型
    
    var B:Float = 12.1 //指定类为 浮点类型中Float类型。
    
    println("A=(A),B=(B)")

    运行结果

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A = 12.0 // A是浮点类型 ,没有明确指定类型,系统默认认为是Double类型
    
    var B:Float = 12.0 //指定类为 浮点类型中Float类型。
    
    println("A=(A)")
    println("B=(B)")

    运行结果

    A=12.0
    B=12.0

    例子 2

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A = 12.1
    var B:Double = 12.1
    var C:Float = 12.1
    
    println("A=(A)")
    
    println("B=(B)")
    
    println("C=(C)")

    运行结果

    A=12.1
    B=12.1
    C=12.1000003814697

    说明:

     var A = 12.1 和var B:Double = 12.1 输出结果相同。即默认是double 类型。并且输出一位小数。

    问题:

    var C:Float = 12.1 
    为什么输出结果是 C=12.1000003814697 希望大家思考一下??

    数字可读性

    例子 

    下划线(整形用法)

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A = 110000
    var B = 110_000//下划线可以放置任何位置
    var C = 1_100_00
    /*
    1: A ,B,C 输出结果是相同的
    2:用下划线(_)用来分隔 外数,便于数字可读性
    3: 下划线(_) 可以放置N个,但是不能把下划线(_) 开头
    
    */
    
    
    
    println("A=(A)")
    println("B=(B)")
    println("C=(C)")

    运行结果

    A=110000
    B=110000
    C=110000

    布尔类型:

    //
    //  main.swift
    //  基本类型2
    
    
    import Foundation
    
    
    var A:Bool = true //bool 类型的取值 只能为 true  false
    
    var B:Bool = false
    
    println("A=(A)")
    
    println("B=(B)")

    运行结果

    A=true
    B=false

    我回陆续把我学习到swift语言的知识写出来形成一个系列。由于是新语言,个人理解难免有不足,欢迎给我提出意见。也可以加我QQ 1436051108一起讨论,如果您有什么问题,也可以直接在QQ留言发给我,我看到之后第一时间回复您

     最后总结一下。送上一直思维导图,作为文章的结束

     

     

  • 相关阅读:
    day19 反射
    Oracle函数整理
    在博客园设置访问人数
    数据库中行转列
    Oracle中数据库与实例的区别
    sql语句的执行顺序
    【地址】ps_cs6安装
    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
    人员管理模块密码过期
    相关性配置模块总结
  • 原文地址:https://www.cnblogs.com/gcb999/p/3776250.html
Copyright © 2011-2022 走看看