变量常量,注释,分号,整数,浮点数。数值行类型转换,类型别名,波尔值,元组,可选,断言

  1. //
  2. //  main.swift
  3. //  swift1
  4. //
  5. //  Created by tqh on 15/6/8.
  6. //  Copyright (c) 2015年 tqh. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10.  
  11. println("Hello, World!")
  12.  
  13. /**
  14. *  常量和变量
  15. */
  16.  
  17. //1.声明常量和变量
  18. let maximumNumberOfLoginAttempts =  //常量,不能重新赋值
  19. var currentLoginAttempt =            //变量,可改变
  20.  
  21. var x = 0.0,= 0.0,= 0.0  // 一行中声明多个常量或者多个变量
  22.  
  23. //注意:如果你的代码中有不需要改变的值,请使用 let 关键字将它声明为常量。只将需要 改变的值声明为变量。
  24.  
  25. //2.类型标注
  26.  
  27. //当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。
  28.  
  29. //声明一个类型为 String,名字为 welcomeMessage 的变量。
  30. var welcomeMessage : String //如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
  31.  
  32. welcomeMessage = "hello" //(一般来说你很少需要写类型标注。)
  33.  
  34. //3.常量和变量的命名
  35.  
  36. //你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符(不能将常量与变量进行互转)
  37. //常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
  38. let n = 3.14159
  39. let 你好 = "你好世界"
  40. let ??? = "haha" //(可以用中文问号)
  41.  
  42. //4.输出常量和变量
  43.  
  44. println(welcomeMessage) //索引不出来 输出"hello"
  45. println("haha")
  46. println("The curr ent value of f riend lyWel come is \(welcomeMessage)")//将常量或变量名放入圆括 号中,并在开括号前使用反斜杠将其转义:
  47.  
  48. /**
  49. *  注释
  50. */
  51.  
  52. //这是一个注释
  53.  
  54. /* 这是一个
  55. 多行注释 */
  56.  
  57. /*这是一个多行注释的开头
  58. /*这是第二个被嵌套的多行注释*/
  59. 这是一个多行注释的结尾(嵌套注释)*/
  60.  
  61. /**
  62. *  分号(有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句:)
  63. */
  64.  
  65. let cat = "? ???"; println( cat) // 输出 "????"
  66.  
  67. /**
  68. *  整数
  69. */
  70.  
  71. //整数范围
  72.  
  73. let minValue = UInt8.min // minValue 为 0,是 UInt8 类型的最小值
  74. let maxValue = UInt8.max // maxValue 为 255,是 UInt8 类型的最大值
  75.  
  76. /**
  77. *  浮点数 (注意:Double 精确度很高,至少有 15 位数字,而 Float 最少只有 6 位数字。选择哪个类型取决于你的代码需要处理的值的范围。)
  78. */
  79.  
  80. //- Double 表示 64 位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
  81. //- Float 表示 32 位浮点数。精度要求不高的话可以使用此类型。
  82.  
  83. /**
  84. *  类型安全和类型推测
  85. */
  86.  
  87. /**
  88. *  数值型字面量
  89. */
  90.  
  91. //- 一个十进制数,没有前缀
  92. //- 一个二进制数,前缀是 0b 
  93. //- 一个八进制数,前缀是 0o
  94. //  - 一个十六进制数,前缀是 0x
  95.  
  96. let decimalInteger = 
  97. let binaryInteger = 0b10001 // 二进制的 17
  98. let octalInteger = 0o21 // 八进制的 17
  99. let hexadecimalInteger = 0x11 // 十六进制的 17
  100.  
  101. /*
  102. 如果一个十进制数的指数为 exp,那这个数相当于基数和$10^{exp}$的乘积:
  103. 1.25e2 表示 $1.25×10^{2}$,等于 125.0。
  104. 1.25e-2 表示 $1.25×10^{-2}$,等于 0.0125。
  105.  
  106. 如果一个十六进制数的指数为 exp,那这个数相当于基数和$2^{exp}$的乘积:
  107. 0xFp2 表示 $15×2^{2}$,等于 60.0。
  108. 0xFp-2 表示 $15×2^{-2}$,等于 3.75。
  109. */
  110.  
  111. //十进制的 12.1875:
  112. let decimalDouble = 12.1875
  113. let exponentDouble = 1.21875e1
  114. let hexadecimalDouble = 0xC.3p0
  115.  
  116. //数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:
  117.  
  118. let paddedDouble = 000123.456
  119. let oneMillion = 1_000_000
  120. let justOverOneMillion = 1_000_000.000_000_1
  121.  
  122. /**
  123. *  数值类型转换
  124. */
  125.  
  126. //1.整数转换
  127.  
  128. //let cannotBeNegative: UInt 8 = - 1
  129. // UInt8 类型不能存储负数,所以会报错
  130. //let tooBig: Int8 = Int8.max + 1
  131. // Int8 类型不能存储超过最大值的数,所以会报错
  132.  
  133. let twoThousand: UInt16 = 2_000
  134. let one: UInt8 = 
  135. let twoThousandAndOne = twoThousand + UInt16(one)
  136.  
  137. //2.整数和浮点数转换
  138.  
  139. let three = 
  140. let pointOneFourOneFiveNine = 
  141. let pi = Double(three) + Double(pointOneFourOneFiveNine) //照着教程的只写一个Double怎么不行
  142. let integerPi = Int(pi)
  143.  
  144. /**
  145. *  类型别名
  146. */
  147.  
  148. //类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias 关键字来定 义类型别名。
  149.  
  150. typealias AudioSample = UInt16
  151.  
  152. var maxAmplitudeFound = AudioSample.min //定义了一个类型别名之后,你可以在任何使用原始名的地方使用别名:
  153.  
  154. /**
  155. *  布尔值
  156. */
  157.  
  158. let orangesAreOrange = true
  159. let turnipsAreDelicious = false
  160.  
  161. if turnipsAreDelicious {
  162.     println("Mmm, tasty turnips!")
  163. } else {
  164.     println("Eww, turnips are horrible.")
  165. }
  166.  
  167. /**
  168. *  元组(元组在临时组织值的时候很有用)
  169. */
  170.  
  171. let http404Error = (, "Not Found")//这个元组可以被描述为“一个类型为(Int, String)的 元组”。
  172.  
  173. let (statusCode, statusMessage) = http404Error
  174. println ("The stat us c ode i s \(statusCode) ")
  175. // 输出 "The status code is 404"
  176. println ("The stat us m essag e is \(statusMessage )")
  177. // 输出 "The status message is Not Found"
  178.  
  179. //如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:
  180. let (justTheStatusCode, _) = http404Error
  181. println ("The stat us c ode i s \(justTheStatusCode)")
  182.  // 输出 "The status code is 404"
  183.  
  184.  println ("The stat us c ode i s \(http404Error.0)" )
  185. // 输出 "The status code is 404"
  186.  println ("The stat us m essag e is \(http404Error.1)")
  187. // 输出 "The status message is Not Found"
  188.  
  189. /**
  190. *  可选(optionals)
  191. */
  192.  
  193. //1.字符串-int
  194. let possibleNumber = ""
  195. let convertedNumber = possibleNumber.toInt()
  196. // convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
  197.  
  198. //2.if 语句以及强制解析
  199.  
  200. if (convertedNumber != nil) { //和教程有点不一样呀
  201.     println("\(convertedNumber)has an integer value of \(convertedNumber!)")
  202.     } else {
  203.     println("\(possibleNumber) could not be converted to an integer")
  204.     }
  205.  
  206. //3.可选绑定
  207.  
  208. //if let constantName == someOptional {
  209. //    statements
  210. //}
  211.  
  212. if let actualNumber = possibleNumber.toInt() {
  213.     println("\(possibleNumber)has an integer value of \(actualNumber)")
  214. } else {
  215. println("\(possibleNumber) could not be converted to an integer")
  216. }
  217.  
  218. //nil 
  219. var serverResponseCode: Int? = 
  220. // serverResponseCode 包含一个可选的 Int 值 404
  221. //如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为 nil:
  222.  
  223. var surveyAnswer: String?
  224. // surveyAnswer 被自动设置为 nil
  225.  
  226. //隐式解析可选(把想要用作可 选的类型的后面的问号(String?)改成感叹号(String! )来声明一个隐式解析可选。)
  227. //如果你在隐式解析可选没有值的时候尝试取值,会触发运行时错误。和你在没有值的普通可选后面加一个惊叹号一样。
  228.  
  229. let possibleString: String? = "An optional string."
  230. println(possibleString!) // 需要惊叹号来获取值
  231.  // 输出 "An optional string."
  232. let assumedString: String! = "An implicitly unwrapped optional string."
  233. println(assumedString) // 不需要感叹号
  234. // 输出 "An implicitly unwrapped optional string."
  235.  
  236. if (assumedString != nil) {
  237.  println(assumedString)
  238. }
  239.  // 输出 "An implicitly unwrapped optional string."
  240. if let definiteString = assumedString {
  241.     println( definiteString)
  242.      }
  243. // 输出 "An implicitly unwrapped optional string."
  244.  
  245. /**
  246. *  断言(assertion)
  247. */
  248.  
  249. let age = -
  250. assert(age >= , "A person's age cannot be less than zero")
  251. // 因为 age < 0,所以断言会触发结束应用。
  252. assert( age >= )//最简单写法
  253.  
  254. /**
  255. *  何时使用断言
  256. */
  257. //1.- 整数的附属脚本索引被传入一个自定义附属脚本实现,但是下标索引值可能太小或者太 大。
  258. //2.- 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
  259. //3.- 一个可选值现在是 nil,但是后面的代码运行需要一个非 nil 值。

swift-基础部分的更多相关文章

  1. swift基础:第六部分:类与对象

    http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...

  2. swift基础:第二部分:函数和闭包

    今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...

  3. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  4. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  5. swift -- 基础

    swift -- 基础 1.常量和变量 常量: let 变量: var 2.声明常量和变量 常量的声明: let let  a = 1         //末尾可以不加分号,等号两边的空格必须对应(同 ...

  6. iOS Swift 模块练习/swift基础学习

    SWIFT项目练习     SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图  +控件 1.UIImag ...

  7. Swift基础学习

    Swift基础学习  http://c.biancheng.net/cpp/html/2242.html 这个网站最近看了一下,对于基本语法解释概括的相对全面,如同重新练习一遍OC似的,挺全面的,谢谢 ...

  8. swift基础语法(四) 函数、闭包(Closures)

    //函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...

  9. Swift基础语法(二)

    操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...

  10. Swift基础之闭包

    内容纲要: 1.闭包基础 2.关于闭包循环引用 正文: 1.闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks) ...

随机推荐

  1. 有关GIT

    今天上班,发现没什么事情. 就看了一些博客,发现有个不错的东西,分享一下. 参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd183612 ...

  2. mousewheel滚轮事件

    原生的滚轮事件:火狐与其他浏览器使用了不同的事件 /* * 滚轮事件只有firefox比较特殊,使用DOMMouseScroll; 其他浏览器使用mousewheel; * */ // firefox ...

  3. 鲁棒性是 Robustness

    鲁棒性是 Robustness 的音译,是指当系统受到不正常干扰时,是否还能保证主体功能正常运作.可参考 维基百科:http://zh.wikipedia.org/zh/ 鲁棒性 _( 计算机科学 ) ...

  4. MVC 局部加载页面的实例

    我们在做MVC 进行某一块的局部刷新,有的使用AJAX 请求,有的使用局部页: 下面我给大家推荐一种使用局部页面实现的这种方式: 第一步: 嵌套视图页 <div id="showAud ...

  5. JavaScript 将多个引用(样式或者脚本)放入一个文件进行引用

    1.将样式放入一个文件进行引用 @import url("../media/css/bootstrap.min.css"); @import url("../media/ ...

  6. 最大后验估计(MAP)

    最大后验估计是根据经验数据获得对难以观察的量的点估计.与最大似然估计类似,但是最大的不同时,最大后验估计的融入了要估计量的先验分布在其中.故最大后验估计可以看做规则化的最大似然估计. 首先,我们回顾上 ...

  7. 团队项目的NABC(截图软件)

    我们小组要开发的软件是基于windows上的截图软件,其NABC如下. 1.need: 首先,截图工具是几乎每个用户都会用到的,不管是在工作中,还是在学习上,其针对的人群从学生到上班族不等, 所以,他 ...

  8. github -- fork提交项目

    我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动 ...

  9. Liferay IDE 3.1 M1发布啦

    很嗨森,以后就再也不用SDK和下载.ivy啦 新增功能主要有: 1.Liferay Workspace(用来存放Liferay Module项目) 2. Liferay Gradle Module P ...

  10. android下的数据存储

    android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...