//swift 里面没有头文件和实现文件。只有一个.swift文件
//swift 里面没有main的概念,程序从main。swift开始执行
//swift 每一条执行语句可以不用分号结束,多条语句在同一行的时候才需要分号区分
//swift 引用其他文件的内容直接引用,不用导头文件
//print 是swift里面的打印函数,效率毕NSLog要高;可以不使用占位符 ,拼接是使用()
//变量 常量 可选类型 控制流
import Foundation
//变量:定义之后允许改变,通过var来表示
//常量:定义了之后不允许改变,通过let,常量定义出来来一定要赋值,不赋值会出错
//swift 会根据初值来对变量/常量 进行自动推断
//明确指明数据类型 let/var变量名:数据类型=初值
let number = 20
let number1 = 12.2

var number2:Int = 20
//number2 =34.4 不允许

//不同数据类型之间不能直接运算,必须进行强转
let result:Int = Int(number1)+number2
let result1:Double = number1+Double(number2)
print("result = (result)")
//println("Hello(123), World!")

//字符Character:用双引号表示,单个字母,指明类型Character

let cha:Character = "a"

//字符串:String:双引号表示,多个字符

let str = "HelloWorld"

//可选类型:如果某一个变量可能为nil(空),那么这个变量就是数据可选类型,可选类型用 ?进行标识
//打印可选类型会有optional,如果要去掉optional就进行强制解包
// var 变量名:数据类型? = 初值(可以不给)
var num0:Int? = 30
//num0 = nil
let num1:Int = 20

//可选类型不能直接参与运算,必须进行强制解包之后才可以参见运算,强制解包用 ! 表示
//对可选类型进行强制解包必须确保可选类型的值不是nil,否则对nil进行强制解包会导致系统奔溃
//unexpectedly found nil while
//unwrapping an Optional value

let sum = num0! + num1
print("sum=(sum)")

//布尔类型
let flag:Bool = true//false

//条件判断 : if
//(1)if后面的小括号可以去掉,大括号不能省略(即使里面只有一句代码)

if flag{
print("flag is true")
}

//(2)if没有非零即真的概念 只有true/false

let value = 10
if value>0{
print("value > 0")
}
//(3)可选类型的条件判断

var name:String?="hello"
//<1>: if-let/var:先判断可选类型name是否为nil(空),如果不为nil就将name进行强制解包后的值赋给temp,然后执行代码段。否则的话就不执行
print("name=(name)")
if let temp = name{
print(temp)
}
//<2>if-let/var-where 是在if-let的基础上对定义的局部变量再做一次判断,两个条件都满足的时候执行{}里的代码块
if let temp = name where temp == "hello"{
print("if-let-where:name=hello\n")
}

var n:Int?=5
if let temp = n {
for(var i=0;i<n;i++){
print("Hello World\n")
}
}

//<3> guard:如果可选值count不为nil的话就强制解包count的值给temp 否则就执行{}里面的代码块,return一定要写
//
//func demo(){
// let count:Int? = 3
// guard let temp = count else{
// print("count 为nil")
// return
// }
// print(temp)
//}

ios swift 里面关于变量 常量 可选类型 控制流的一些心得的更多相关文章

  1. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  2. Swift入门(四)——可选类型(Optionals)与断言(Assert)

    可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,能够把String类型变量转换为Int类型变量. var stringValue = "5&q ...

  3. 初步swift语言学习笔记2(可选类型?和隐式可选类型!)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28904115 转载请注明出处 假设认为文章对你有所帮助.请通过留言 ...

  4. swift学习第九天:可选类型以及应用场景

    可选类型的介绍 注意: 可选类型时swift中较理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可以 ...

  5. Swift基础语法(常量变量、数据类型、元组、可选、断言)

    本文来自Swift中文开发组,感谢翻译者的分享. 本文将分几部分对Swift对ios的语法做讲解.本文为第一节,主要讲解基础语法. 常量和变量 常量和变量把一个名字(比如maximumNumberOf ...

  6. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  7. iOS:swift :可选类型

    import UIKit /*: 可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil ...

  8. iOS开发零基础--Swift教程 可选类型

    可选类型的介绍 注意: 可选类型时swift中较难理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可 ...

  9. 李洪强iOS开发Swift篇—02_变量和常量

    李洪强iOS开发Swift篇—02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...

随机推荐

  1. Tensorflow安装教程-Win10环境下

    背景:最新版的Tensoflow已经支持Python3.6 首先,下载并安装Anaconda3 内置Python3.6的版本 https://www.continuum.io/downloads 安装 ...

  2. 牛客网Java刷题知识点之基本类型、引用类型

    不多说,直接上干货! byte-short-int-long,方便识记.

  3. Hadoop源生实用工具之distcp

    1 概览 DistCp(Distributed Copy)是用于大规模集群内部或者集群之间的高性能拷贝工具. 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成. 它把文件和目录的列 ...

  4. PHP笔试题和面试题

    1.不用新变量直接交换现有两个变量的值 (1)list($a,$b)=array($b,$a); (2)a=a+b,b=a-b,a=a-b 2.PHP数字金额转大小格式,同时说明思路 function ...

  5. qemu 出现Could not access KVM kernel module: No such file or directory failed to initialize KVM: No such file or directory

    使用qemu命令 qemu-system-x86_64 -hda image/ubuntu-test.img -cdrom ubuntu-16.04.2-server-amd64.iso -m 102 ...

  6. Javascript Functions

    Javascript 全局对象 全局属性和函数可用于所有内建的Javascript对象 顶层函数(全局函数) decodeURI()解码某个编码的URI. decodeURIComponent()解码 ...

  7. ArcSDE空间数据库中SDE用户使用探讨 (转载)

    ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据库中SDE用户的使用方法.ArcSDE如何工作ArcSDE属于中间件技术,其本身并不能够存储空间数据 ...

  8. Spring+Hibernateh使用小结

    由此我们可以看出,报出错误的地方主要是slf4j的jar包,而故障码中“Failed to load class ’org.slf4j.impl.StaticLoggerBinder‘”的意思则是“加 ...

  9. sudo用户权限添加问题

    现象:通过visudo或者vim /etc/sudoers文件添加用户权限后,该用户测试时依然需要输入密码解决:查看/etc/passwd用户id可能重复并且重复的uid排在该用户上面

  10. 浅谈Scrum敏捷开发:4个输入/输出、3个关键物、3个会议

    文章对Scrum敏捷开发流程进行系统的分析,希望借此文能够加深你对敏捷开发的认知,更好的展开产品工作. Scrum敏捷开发,是一种敏捷开发框架,是一个增量的.迭代的开发过程,具备可视.可集成和可运行使 ...