Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)
Swift 中导入类库使用import,不再使用<>,导入自定义不再使用""
import Foundation
1> 声明变量和常量
在Swift中使用 "let" 修饰一个常量,使用 "var" 修饰一个变量;
let修饰常量的值是不可以更改的;
var修饰的变量的值是可以更改的;
在声明常量和变量的时候可以使用表情符号、中文等命名常量名和变量名。
- Swift定义变量或者常量的时候,需要标识出变量或者常量的类型,如果不标识,会根据初始值自动推断。
//MARK: - 定义常量、变量
// 定义常量(使用完第一次就不能修改他的值了)
// 用let最好给定初始值,因为使用一次不能在修改
let myGender = "♂"
//myGender = "男" // 定义变量
var carName = "BMW"
carName = "Audi"
print(carName) // 加不加引号都可以 //MARK: - 定义常量变量:变量类型的隐式转换
// 在swift中如果定义常量变量不给定相关的类型,它会隐式转换成你给定的初始值
let name = "Rose" // 如果这样自定义出来一个常量,它会隐式转换成string类型
let name1 : String = "Jack" // 如果给定类型,后边赋值的时候需要根据类型进行赋值 let age : Int = // 如果定义常量最好给初始值,定义变量可以不给初始值 var age1 : Int? // ? 表示age1 的类型为可选类型,其值可以为空
print(age1) var char : Character = "a" // 赋值字符类型的时候仅需一个字母即可 // 定义一个BOOL类型的变量 [在swift中 bool类型只有true or false]
var flag : Bool = true
2> 字符串
String是有序的字符集合
Swift中的字符串通过String类型表示,当然也可以看成Character字符类型的集合
\(变量名)输出相关内容【插入式取值】
//MARK: - 字符串string
//(1)创建一个空字符串
var str_empty = ""
var str1_empty = String() //(2)判断一个字符串为空字符串
if str_empty.isEmpty{
print("str_emrty is empty")
} //(3)字符串的拼接
var str_url = "http://"
var str = "www.baidu.com" let str_new_url = str_url + str
print(str_new_url)
print("百度网址:\(str_new_url)") // \(变量名)输出相关的内容【插入式取值】 //(4)获取字符串的长度
var str1 : String = "abcde"
print(str1.characters.count) //(5)字符串的比较
var str2 = "MBBoy"
var str3 = "GBLW" if str2 != str3 { // == 相等 != 不相等
print("这两个不相等")
}
3. 数组、字典
1> 数组
//MARK: - 数组
//Swift 中数组的元素类型必须相同
//定义一个数组
var nameArray = ["yuanyuan","GBLW","WYW"]
print(nameArray) var nameArray1 : Array<String> = ["YaQian","ZhaTian"]
print(nameArray1) //定义一个空数组(字符串)
let array : Array = Array<String>()
print(array) //访问数组的元素
print(nameArray[]) //向数组中添加元素
var int_array = Array<Int>()
int_array.append()
int_array.append()
print(int_array) //使用运算符添加数组元素
int_array += []
//使用运算符添加多个数组元素
int_array += [,]
print(int_array) //插入元素到具体位置
int_array.insert(, atIndex: )
print(int_array) //移除某个元素
int_array.removeAtIndex()
print(int_array) // 移除所有元素
int_array.removeAll()
print(int_array)
2> 字典
//MARK: - 字典
//定义一个字典类型的变量
var dic : Dictionary<String,Int> = ["a":,"b":,"c":]
print(dic) //定义空字典
var dic1 : Dictionary<String,Int> = [:]
print(dic1)
var dic2 = Dictionary<String,Int>()
print(dic2) //向字典里添加键值对
dic["d"] =
print(dic) //修改字典中的内容(根据键值去修改)
dic["a"] =
print(dic)
//打印某个元素的值
print(dic["a"]) //删除字典中的内容(根据键去删除)
dic.removeValueForKey("c")
print(dic)
4. 元组
//MARK: - 元组
//定义一个元组
//方法一:直接初始化一个元素(使用Swift隐式转换的特点)
let tuples = ("苹果",["iOS","html5","Android"])
print(tuples)
//方法二:显示初始化的方式
let tuples1 : (String,Array) = ("安卓",["iOS","html5","Android"])
print(tuples1) //可变元组和不可变元组
var superTuples = (name:"asd", , ["", ""])
superTuples.name = "qwe"
print(superTuples.name) //会打印name变成qwe //let superTuples = (name:"asd", 12, ["111", "222"])
//superTuples.name = "qwe"
//print(superTuples.name) //会报错 ////需要注意的是,可变元组虽然可以修改数据,但却不能改变其数据的数据类型:
//var superTuplesType = (name:"asd", 12, ["111", "222"])
//superTuplesType.name = 1
//print(superTuples.name) //会报错 //取出元组中的值
//第一种取值方式:直接把元组赋值给另外一个常量,根据相关的标记进行取值
let tuples_new : (appStyle:String,course:Array) = tuples
var classInfo = tuples_new.appStyle + tuples_new.course[] + tuples_new.course[] + tuples_new.course[]
print(classInfo) //第二种取值方式:直接根据下标进行取值
let classInfoNew = tuples_new. + tuples_new.[] + tuples_new.[] + tuples_new.[]
print(classInfoNew)
5. 循环结构
1> 概述
Swift里面的循环结构包含:for、for-in、while、repeat-while
2> 循环
//MARK: - 循环
//第一种形式:
for var i = ; i < ; i++
{
print(i)
} // 第二种形式
// 1到9
for number in ..<
{
print("number:\(number)")
} //第三种形式
// 1到10
for number in ...
{
print("number:\(number)")
} //while循环和repeat...while
var i =
while i >
{
i--
print(i)
} repeat
{ // 限制性一次循环体,在进行相关的循环
print("woaini")
}while < //使用循环遍历数组
var animalArray = ["cat","dog","tiger","monkey","fish"]
for animal in animalArray
{
print(animal)
} //使用循环遍历字典
var animalDic = ["pig":"Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)的更多相关文章
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
- Swift学习—字符串&数组&字典
字符串 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" ...
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
本文来自Swift中文开发组,感谢翻译者的分享. 本文将分几部分对Swift对ios的语法做讲解.本文为第一节,主要讲解基础语法. 常量和变量 常量和变量把一个名字(比如maximumNumberOf ...
- Swift学习--常量.变量.数据类型的使用(二)
一.Swift中的数组 //Swift中的数组 //NSArray *arr = @["",""]; //和OC数组的区别就是去掉前面的@ let arr11 ...
- Swift学习--常量.变量.数据类型的使用(一)
一.Swift中的常量和变量 /* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们 ...
- Swift(一,创建对象,类型推导,基本运算,逻辑,字符串,数组,字典)
swift用起来刚开始感觉有点怪怪的,但用了一段时间觉得还是挺好用的,哈哈.毕竟都是要有一个过程的嘛. 我就写一些自己在使用swift的时候的注意点吧,如有不正之处,还请指正! 一.在开发中优先使用常 ...
- IOS NS 字符串 数组 字典 文件 动态 静态 操作
ios 常用字符串的操作 //将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response e ...
- oc字符串+数组+字典操作题目
1. 判断中间目录是否存在 (10分) 比如 传入字符串 @"/home/qianfeng/oc.txt" 和 @"qianfeng" 返回:YES 传入字符串 ...
- Linux-Shell基础(变量,字符串,数组)
一. 什么是shell shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统 ...
- Object-C 语法 字符串 数组 字典 和常用函数 学习笔记
字符串 //取子字符串 NSString *str1=@"今天的猪肉真贵,200块一斤"; NSString *sub1=[str1 substringFromIndex:4]; ...
随机推荐
- hdu 5104 Primes Problem(prime 将三重循环化两重)
//宁用大量的二维不用量小的三维 #include <iostream> #include<cstdio> #include<cstring> using name ...
- Java中布尔类型操作符&=,|=与^=的使用
今天在对同事的代码进行code review的时候,见到一个比较好玩的写法.“flag &= false:”,乍一看,还感觉他写错了,但是程序可以正常运行,赶紧去百度,看一下这个写法到底是怎么 ...
- 如何用cocoapods 来管理项目中的第三方框架?
一.安装 1.如果以前安装过,升级到10.10后工作不正常,可以先删除cocoapods $ sudo gem uninstall cocoapods ----------------------- ...
- C++函数声明和定义深度解析
概述: 声明是将一个名称引入一个程序. 定义提供了一个实体在程序中的唯一描述. 声明在单个作用域内可以重复多次(类成员除外),定义在一个给定的作用域内只能出现一次. 一个定义就是一个声明,除非: 它定 ...
- News feed
1. Level 1.0 Database Schema: a. User UserID Name Age 1 Jason 25 2 Michael 26 b. Friendship Friendsh ...
- VC++ 编译过程
一 前言 一开始编译C++代码的时候可能会对编译的错误觉得很难理解,搞不清楚究竟是哪里错了.了解编译过程,能够更好的处理编译错误. 二 名词解释 编译单元:当一个c或cpp文件在编译时,预处理器首先递 ...
- 在数组中找几个数的和等于某个数[LeetCode]
首先明确一点,这个方面的问题设计到的知识点是数组的查找的问题.对于类似的这样的查找操作的具体办法就是三种解决方法: 1.暴力算法,多个for循环,很高的时间复杂度 2.先排序,然后左右夹逼,但是这样会 ...
- Qt在Linux环境下应用程序字体模糊的解决方法(先改成使用默认字体,然后使用qtconfig配置)
这两天一直在用Qt实现一个跨平台的软件.软件之前在Windows上编写的,后来放到里Ubuntu 10.10下编译.程序运行时遇到一个很棘手的问题,界面文本非常模糊.后来在网上查阅了好几天的资料,经历 ...
- HDU 1849 Rabbit and Grass
题解:因为棋子可重叠,所以就等于取石子问题,即尼姆博弈,SG[i]=i,直接将输入数据异或即可. #include <cstdio> int main(){ int SG,n,a; whi ...
- dojo 学习笔记
1 因为Dijit包括了一系列的UI组件,他绑定了4个支持的主题:nihilo, soria, tundra 和claro.每个主题包括了一系列的图片和CSS文件来控制组件的外观.CSS文件必须显示 ...