swift学习笔记一之常量和变量

本系列笔记是博主通过观看慕课网liuyubobobo讲师主讲的《玩儿转swift2.0》的课堂学习笔记并整理课堂上讲到的代码,也可通过慕课网app观看他的视频支持他,讲师的所有课堂代码在github上,以及更新的swift3.0的代码,建议还是先过一遍老师的视频,然后再自己敲一遍课堂代码,再反过来复习,相信一定有很大的帮助。

在OC语言中,变量在声明之前要指明其类型,如

NSString *name = @"liuyubobobo";

但是swift类型中,当然变量也有指定的类型,但是在声明的时候,只划分成常量和变量两种。

常量在声明并初始化之后就不能再改变了,变量就是这个量的值可以被不断地改变

常量用let关键字声明,变量用var关键字声明

let maxName = 1000

var index = 2

swift语言特意将常量这个概念提到了和变量相同的高度,其实是鼓励开发者们去思考一个量到底是常量还是变量。很多时候,一个量在声明之后就不再改变了,这个时候苹果建议我们把这个量声明为let,这样这个量对整个计算资源的消耗更少,整个程序也就更加优化。

上面的甩let声明的常量maxName,如果我们在playground中将其赋值为2000,那么编译器报错,并可自动将let关键字修改为var。利用这个特性,除非我们有非常明确的变量生命目的,很多时候我们可以放心将一个量声明为常量let,而这个量在以后的代码可能会被修改,那么可直接通过编译器将let修改为var。

还有一点,跟其他语言不同的是,swift不需要要求在每个语句后强制使用分号,swift语言可以完全不写分号,除非在一行中书写多天语句时,必须显式地加上分号,当然啦,苹果不建议我们在一行书写多条语句,除非有非常明确的需求,

我们发现,每个量在声明时都要加上let或var关键字,那么它们是什么类型的呢?事实上,swift语言有类型推断机制(tyoe inference),就是通过初始化的值推断这个量真正的类型,例如上面的例子中,两个量都被swift推断为Int类型,你可以通过对量使用option键看这个量真正的类型。swift语言是一个强类型语言,很多时候我们不需要想其他语言一样显式地表明一个量的类型。swift语言也支持显示地声明量的类型,例如

let website: String = "www.imooc.com"

var a, b, c: Double
时间: 2024-10-08 08:17:46

swift学习笔记一之常量和变量的相关文章

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

Swift学习笔记(二)参数类型

关于参数类型,在以前的编程过程中,很多时间都忽视了形参与实参的区别.通过这两天的学习,算是捡回了漏掉的知识. 在swift中,参数有形参和实参之分,形参即只能在函数内部调用的参数,默认是不能修改的,如果想要修改就需要在参数前添加var声明. 但这样的声明过后,仍旧不会改变实参的值,这样就要用到inout了,传递给inout的参数类型必须是var类型的,不能是let类型或者字面类型,(字面类型是在swift中常提的一个术语,个人认为就是赋值语句,也不能修改)而且在传递过程中,要用传值符号"&

Swift学习笔记十:属性

1.存储属性       1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值.存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述). struct student{ let name = "" var score = 0 } let a = student(name:"小笨狼",score:96)           注意:                ① 定义储存属性时,需要为每一个属性定义一个默认值.在初始化的时候,

Swift学习笔记(4)--字符串及基本使用

String是例如"hello, world","海贼王" 这样的有序的Character(字符)类型的值的集合,通过String类型来表示. Swift 的String类型与 Foundation NSString类进行了无缝桥接.如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作.所有NSString API 都可以调用您创建的任意String类型的值.除此之外,还可以使用本章介绍的String特性.您也可以在任意要求传

Swift学习笔记

Apple 新推的Swift已经好几天了.对于向我这样的oc都还没完全琢磨透彻的菜鸟来说--(简直就是福利啊,joke) 看了几天的Swift,只是有了基本的印象.总感觉比较换混乱,可能源自与自己没怎么学过脚本语言.索性,边看边记,加深印象. 本来部分内容源自Apple的<The Swift Programming Language>以及互联网教程.其余内容均为个人理解,不保证正确. 进入正题: 1.Swift是什么? Apple唤他作:雨燕.其实英语过了四级的都应该看出来,Swift还有一层

Swift学习笔记(一):基础

一.常量 & 变量 //常量 let constantsTeam = 1 //变量 var variablesTeam = 2 尽可能使用常量,这样更清晰并且内存更不容易肾亏. 二.显示/隐式指定类型 //隐式 let inferredTeam = 3 //显式 let explicitTeam:Int = 4 三.字符串输出 //通过\(变量或常量名)来引用组合字符串 println("\(inferredTeam) is bigger than \(variablesTeam)!&q

swift学习笔记(七)自动引用计数

与Object-c一样,swift使用自动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例,因为struct和enumeration属于值类型,也就不牵涉引用,所以其存储和管理方式并不是引用计数. 当一个实例被初始化时,系统会自动分配一定的内存空间,用于管理属性和方法.当实例对象不再被使用时,其内存空间被收回. swift中的引用类型分为三种,即Strong强引用,weak弱引用和无主引用unw

Swift学习笔记:类和结构

一.类和结构的异同 类和结构有一些相似的地方,它们都可以: 1. 定义一些可以赋值的属性: 2. 定义具有功能性的方法 3. 定义下标,使用下标语法 4. 定义初始化方法来设置初始状态 5. 在原实现方法上的可扩展性 根据协议提供某一特定类别的基本功能 1. 类还有一些结构不具备的特性: 2. 类的继承性 3. 对类实例实时的类型转换 4. 析构一个类的实例使之释放空间 5. 引用计数,一个类实例可以有多个引用 1. 定义语法 struct Name{ let firstName = "&quo

Swift学习笔记七:闭包

闭包可以 捕获 和存储其所在上下文中任意常量和变量的引用. Swift 会为您管理在 捕获 过程中涉及到的内存操作. 在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一: 1. 全局函数是一个有名字但不会捕获任何值的闭包 2. 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 3. 闭包表达式是一个可以捕获其上下文中变量或常量值的没有名字的闭包 一.闭包表达式 闭包函数类似于Objective-C中的block.下面我们用事实说话: let counts =