swift-基础部分
变量常量,注释,分号,整数,浮点数。数值行类型转换,类型别名,波尔值,元组,可选,断言
- //
- // main.swift
- // swift1
- //
- // Created by tqh on 15/6/8.
- // Copyright (c) 2015年 tqh. All rights reserved.
- //
- import Foundation
- println("Hello, World!")
- /**
- * 常量和变量
- */
- //1.声明常量和变量
- let maximumNumberOfLoginAttempts = //常量,不能重新赋值
- var currentLoginAttempt = //变量,可改变
- var x = 0.0,y = 0.0,z = 0.0 // 一行中声明多个常量或者多个变量
- //注意:如果你的代码中有不需要改变的值,请使用 let 关键字将它声明为常量。只将需要 改变的值声明为变量。
- //2.类型标注
- //当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。
- //声明一个类型为 String,名字为 welcomeMessage 的变量。
- var welcomeMessage : String //如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
- welcomeMessage = "hello" //(一般来说你很少需要写类型标注。)
- //3.常量和变量的命名
- //你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符(不能将常量与变量进行互转)
- //常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
- let n = 3.14159
- let 你好 = "你好世界"
- let ??? = "haha" //(可以用中文问号)
- //4.输出常量和变量
- println(welcomeMessage) //索引不出来 输出"hello"
- println("haha")
- println("The curr ent value of f riend lyWel come is \(welcomeMessage)")//将常量或变量名放入圆括 号中,并在开括号前使用反斜杠将其转义:
- /**
- * 注释
- */
- //这是一个注释
- /* 这是一个
- 多行注释 */
- /*这是一个多行注释的开头
- /*这是第二个被嵌套的多行注释*/
- 这是一个多行注释的结尾(嵌套注释)*/
- /**
- * 分号(有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句:)
- */
- let cat = "? ???"; println( cat) // 输出 "????"
- /**
- * 整数
- */
- //整数范围
- let minValue = UInt8.min // minValue 为 0,是 UInt8 类型的最小值
- let maxValue = UInt8.max // maxValue 为 255,是 UInt8 类型的最大值
- /**
- * 浮点数 (注意:Double 精确度很高,至少有 15 位数字,而 Float 最少只有 6 位数字。选择哪个类型取决于你的代码需要处理的值的范围。)
- */
- //- Double 表示 64 位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
- //- Float 表示 32 位浮点数。精度要求不高的话可以使用此类型。
- /**
- * 类型安全和类型推测
- */
- /**
- * 数值型字面量
- */
- //- 一个十进制数,没有前缀
- //- 一个二进制数,前缀是 0b
- //- 一个八进制数,前缀是 0o
- // - 一个十六进制数,前缀是 0x
- let decimalInteger =
- let binaryInteger = 0b10001 // 二进制的 17
- let octalInteger = 0o21 // 八进制的 17
- let hexadecimalInteger = 0x11 // 十六进制的 17
- /*
- 如果一个十进制数的指数为 exp,那这个数相当于基数和$10^{exp}$的乘积:
- 1.25e2 表示 $1.25×10^{2}$,等于 125.0。
- 1.25e-2 表示 $1.25×10^{-2}$,等于 0.0125。
- 如果一个十六进制数的指数为 exp,那这个数相当于基数和$2^{exp}$的乘积:
- 0xFp2 表示 $15×2^{2}$,等于 60.0。
- 0xFp-2 表示 $15×2^{-2}$,等于 3.75。
- */
- //十进制的 12.1875:
- let decimalDouble = 12.1875
- let exponentDouble = 1.21875e1
- let hexadecimalDouble = 0xC.3p0
- //数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:
- let paddedDouble = 000123.456
- let oneMillion = 1_000_000
- let justOverOneMillion = 1_000_000.000_000_1
- /**
- * 数值类型转换
- */
- //1.整数转换
- //let cannotBeNegative: UInt 8 = - 1
- // UInt8 类型不能存储负数,所以会报错
- //let tooBig: Int8 = Int8.max + 1
- // Int8 类型不能存储超过最大值的数,所以会报错
- let twoThousand: UInt16 = 2_000
- let one: UInt8 =
- let twoThousandAndOne = twoThousand + UInt16(one)
- //2.整数和浮点数转换
- let three =
- let pointOneFourOneFiveNine =
- let pi = Double(three) + Double(pointOneFourOneFiveNine) //照着教程的只写一个Double怎么不行
- let integerPi = Int(pi)
- /**
- * 类型别名
- */
- //类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias 关键字来定 义类型别名。
- typealias AudioSample = UInt16
- var maxAmplitudeFound = AudioSample.min //定义了一个类型别名之后,你可以在任何使用原始名的地方使用别名:
- /**
- * 布尔值
- */
- let orangesAreOrange = true
- let turnipsAreDelicious = false
- if turnipsAreDelicious {
- println("Mmm, tasty turnips!")
- } else {
- println("Eww, turnips are horrible.")
- }
- /**
- * 元组(元组在临时组织值的时候很有用)
- */
- let http404Error = (, "Not Found")//这个元组可以被描述为“一个类型为(Int, String)的 元组”。
- let (statusCode, statusMessage) = http404Error
- println ("The stat us c ode i s \(statusCode) ")
- // 输出 "The status code is 404"
- println ("The stat us m essag e is \(statusMessage )")
- // 输出 "The status message is Not Found"
- //如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:
- let (justTheStatusCode, _) = http404Error
- println ("The stat us c ode i s \(justTheStatusCode)")
- // 输出 "The status code is 404"
- println ("The stat us c ode i s \(http404Error.0)" )
- // 输出 "The status code is 404"
- println ("The stat us m essag e is \(http404Error.1)")
- // 输出 "The status message is Not Found"
- /**
- * 可选(optionals)
- */
- //1.字符串-int
- let possibleNumber = ""
- let convertedNumber = possibleNumber.toInt()
- // convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
- //2.if 语句以及强制解析
- if (convertedNumber != nil) { //和教程有点不一样呀
- println("\(convertedNumber)has an integer value of \(convertedNumber!)")
- } else {
- println("\(possibleNumber) could not be converted to an integer")
- }
- //3.可选绑定
- //if let constantName == someOptional {
- // statements
- //}
- if let actualNumber = possibleNumber.toInt() {
- println("\(possibleNumber)has an integer value of \(actualNumber)")
- } else {
- println("\(possibleNumber) could not be converted to an integer")
- }
- //nil
- var serverResponseCode: Int? =
- // serverResponseCode 包含一个可选的 Int 值 404
- //如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为 nil:
- var surveyAnswer: String?
- // surveyAnswer 被自动设置为 nil
- //隐式解析可选(把想要用作可 选的类型的后面的问号(String?)改成感叹号(String! )来声明一个隐式解析可选。)
- //如果你在隐式解析可选没有值的时候尝试取值,会触发运行时错误。和你在没有值的普通可选后面加一个惊叹号一样。
- let possibleString: String? = "An optional string."
- println(possibleString!) // 需要惊叹号来获取值
- // 输出 "An optional string."
- let assumedString: String! = "An implicitly unwrapped optional string."
- println(assumedString) // 不需要感叹号
- // 输出 "An implicitly unwrapped optional string."
- if (assumedString != nil) {
- println(assumedString)
- }
- // 输出 "An implicitly unwrapped optional string."
- if let definiteString = assumedString {
- println( definiteString)
- }
- // 输出 "An implicitly unwrapped optional string."
- /**
- * 断言(assertion)
- */
- let age = -
- assert(age >= , "A person's age cannot be less than zero")
- // 因为 age < 0,所以断言会触发结束应用。
- assert( age >= )//最简单写法
- /**
- * 何时使用断言
- */
- //1.- 整数的附属脚本索引被传入一个自定义附属脚本实现,但是下标索引值可能太小或者太 大。
- //2.- 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
- //3.- 一个可选值现在是 nil,但是后面的代码运行需要一个非 nil 值。
swift-基础部分的更多相关文章
- swift基础:第六部分:类与对象
http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...
- swift基础:第二部分:函数和闭包
今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- swift -- 基础
swift -- 基础 1.常量和变量 常量: let 变量: var 2.声明常量和变量 常量的声明: let let a = 1 //末尾可以不加分号,等号两边的空格必须对应(同 ...
- iOS Swift 模块练习/swift基础学习
SWIFT项目练习 SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图 +控件 1.UIImag ...
- Swift基础学习
Swift基础学习 http://c.biancheng.net/cpp/html/2242.html 这个网站最近看了一下,对于基本语法解释概括的相对全面,如同重新练习一遍OC似的,挺全面的,谢谢 ...
- swift基础语法(四) 函数、闭包(Closures)
//函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...
- Swift基础语法(二)
操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...
- Swift基础之闭包
内容纲要: 1.闭包基础 2.关于闭包循环引用 正文: 1.闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks) ...
随机推荐
- 有关GIT
今天上班,发现没什么事情. 就看了一些博客,发现有个不错的东西,分享一下. 参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd183612 ...
- mousewheel滚轮事件
原生的滚轮事件:火狐与其他浏览器使用了不同的事件 /* * 滚轮事件只有firefox比较特殊,使用DOMMouseScroll; 其他浏览器使用mousewheel; * */ // firefox ...
- 鲁棒性是 Robustness
鲁棒性是 Robustness 的音译,是指当系统受到不正常干扰时,是否还能保证主体功能正常运作.可参考 维基百科:http://zh.wikipedia.org/zh/ 鲁棒性 _( 计算机科学 ) ...
- MVC 局部加载页面的实例
我们在做MVC 进行某一块的局部刷新,有的使用AJAX 请求,有的使用局部页: 下面我给大家推荐一种使用局部页面实现的这种方式: 第一步: 嵌套视图页 <div id="showAud ...
- JavaScript 将多个引用(样式或者脚本)放入一个文件进行引用
1.将样式放入一个文件进行引用 @import url("../media/css/bootstrap.min.css"); @import url("../media/ ...
- 最大后验估计(MAP)
最大后验估计是根据经验数据获得对难以观察的量的点估计.与最大似然估计类似,但是最大的不同时,最大后验估计的融入了要估计量的先验分布在其中.故最大后验估计可以看做规则化的最大似然估计. 首先,我们回顾上 ...
- 团队项目的NABC(截图软件)
我们小组要开发的软件是基于windows上的截图软件,其NABC如下. 1.need: 首先,截图工具是几乎每个用户都会用到的,不管是在工作中,还是在学习上,其针对的人群从学生到上班族不等, 所以,他 ...
- github -- fork提交项目
我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动 ...
- Liferay IDE 3.1 M1发布啦
很嗨森,以后就再也不用SDK和下载.ivy啦 新增功能主要有: 1.Liferay Workspace(用来存放Liferay Module项目) 2. Liferay Gradle Module P ...
- android下的数据存储
android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...