1,字符串

swift,字符串默认的类型是String,而不是Nsstring

swift中是一个结构体,效率高,支持快速遍历

Nsstring是继承自NSObject,是一个OC对象,不支持快速遍历


//对字符串的快速遍历

var string:String = "hello playground,大家好"

for cin string {

print(c)

}


//字符串的拼接

let string1 = string +"hello"

let i =100

let view = UIView()

view.backgroundColor = UIColor.redColor()

print(string1 + "\(i) \(view.backgroundColor)")


let frame = CGRectMake(100,100,100);

print("区域\(frame)")


//格式拼接: [Nssting stringWithFormat:]

let string2 = String(format:"%02d:%02d:%02d",arguments: [1,5,10])


//取子串范围使用 String Range ->取子串的时候

let myString ="hello"

//myString中取出前三个字符

let subString = myString.substringWithRange(Range<String.Index>(start: advance(string.startIndex,0),end: advance(string.startIndex,3)))


使用推荐:swift中如果要结合range一起操作,建议先把私服穿转换成Nsstring,再进行处理,如下

let myString2:Nsstring ="hello"

myString2.substringWithRange(NSMakeRange(0,3))


2,数组

使用中括号[]来定义

定义的数组类型是[String],表示数组中只能存放字符串

OC中数组分可变和不可变,

swift: let不可变,var可变

let array1 = ["zhangsan","lisi"]


//数组的遍历

for ain array1 {

print(a)

}


var array2 = ["aaa","bbb"]

//添加元素(不可变的数组无法添加元素)

array2.append("ccc")


//如果定义数组时,指定的对象类型不一致,则其类型是[NSObject]

var array3 = ["zzz",11,"123"]

for ain array3 {

print(a)

}


OC,如果需要向数组中加数字,需要转换成NSNumber

swift,可以直接添加 (万物皆对象)

同常在开发时,不建议在数组中使用不同类型的数据,使用起来不太方便,可能需要转换,如下

for ain array3 {

let string ="hi \(a)"

print(string)

}


数组的定义和初始化


//定义,但是没有初始化

var array4:[String]

//初始化一个字符串的可变数组

array4 = [String]()

array4.append("hello")

array4.append("world")

print(array4.capacity)//容量为2


//删除数据,keepCapacity,是否保持容量

array4.removeAll(keepCapacity:true)

print(array4.capacity)


//不论是否保存容量,再次追加元素的时候,每次超过容量,容量直接在现有容量的基础上 *2

//在实际开发中,绝大多数,数组的容量是固定的,需要注意保持容量,以及声明的时候,指定容量

for iin 0...10 {

array4.append("\(i)")

print("\(array4):\(array4.capacity)")

}


3,字典

定义一个字典,任然使用方括号[]

以下代码定义的字典类型是[String:NSObject]

在目前swift版本中,定义字典通常使用[String:NSObject]

//大多数情况下,key的类型是固定的

let dict = ["name":"zhangsan","title":"boss","age":18]


//遍历字典(注意:k,v随便写,前面是键key,后面是值value)

for (k,v)in dict {

print("\(k) -- \(v)")

}


可变字典:var

不可变字典:let


//定义字典,并且实例化

var dict1 = [String:NSObject]()


//设置内容

dict1["name"] = "laowang"

dict1["age"] =80

print(dict1)


//注意:如果key已经存在,设置数值时,会覆盖之前的值,字典的键不会重复

dict1["name"] = "abc"

print(dict1)


//删除内容(根据键删除值)

dict1.removeValueForKey("age")

print(dict1)


//合并字典

var dict2 = ["title":"boss"]


//利用循环来进行合并

//遍历dict2

for (k,v)in dict2 {

//跟新指定keyvalue

//如果不存在key,会新建,并且设置数值

//如果key存在,会覆盖值

dict1.updateValue(v,forKey: k)

}

print(dict1)

//dict2de 值不变

print(dict2)


4,函数

定义函数

OC的风格: - (void)函数名(参数){}

swift函数定义格式

func函数名(参数列表) ->返回值{//代码实现}

"->"swift特有的,表示前面的执行结果输出给后面的


func sum(a:Int,b:Int) ->Int {

return a + b

}


sum(10,20)


//强制填写参数,使用#,可以在调用函数的时候,增加参数

//会让代码提示更直观,符合OC程序员的习惯

func sum1 (#a:Int,#b:Int) -> Int {

return a + b

}

sum1(a:10,b: 20)


如果没有返回值,"->返回值"可以省略,或者也可以写成下面的格式:

-> Void

-> ()


func demo (a:Int) -> (){

print(a)

}

Swift基础语法&&入门教程_字符串,数组_字典的更多相关文章

  1. html5使用canvas实现弹幕功能示例

    这篇文章主要介绍了html5使用canvas实现弹幕功能示例的相关资料,需要的朋友可以参考下

  2. HTML5 WebSocket实现点对点聊天的示例代码

    这篇文章主要介绍了HTML5 WebSocket实现点对点聊天的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. 前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)

    这篇文章主要介绍了前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. H5 canvas实现贪吃蛇小游戏

    本篇文章主要介绍了H5 canvas实现贪吃蛇小游戏,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

  6. ios – 声明NSDictionary并在Swift中添加键值对?

    我一直在尝试使用类类型键和值来声明一个NSDictionary,如下所示:这里,“Category”和“SubCategory”是全局类.我知道我不能将类类型用于关键字段.但是,无论如何,我应该做到这一点.有没有办法做到这一点?如何声明专门的NSDictionary或类似的东西来做到这一点?

  7. ios – parse.com用于键,预期字符串的无效类型,但是得到了数组

    我尝试将我的数据保存到parse.com.我已经预先在parse.com上创建了一个名为’SomeClass’的类.它有一个名为’mySpecialColumn’的列,其数据类型为String.这是我尝试使用以下代码保存数据的代码:如果我运行这个我得到:错误:密钥mySpecialColumn的无效类型,预期字符串,但得到数组这就是我在parse.com上的核心外观:有谁知道我为什么会收到这个错误?

  8. ios – 在Swift中将输入字段字符串转换为Int

    所以我非常擅长制作APP广告Swift,我试图在文本字段中做一些非常简单的输入,取值,然后将它们用作Int进行某些计算.但是’vardistance’有些东西不正确它是导致错误的最后一行代码.它说致命错误:无法解开Optional.None解决方法在你的例子中,距离是一个Int?否则称为可选的Int..toInt()返回Int?因为从String到Int的转换可能失败.请参阅以下示例:

  9. ios – Swift相当于`[NSDictionary initWithObjects:forKeys:]`

    Swift的原生字典是否与[NSDictionaryinitWithObjects:forKeys:]相当?假设我有两个带键和值的数组,并希望将它们放在字典中.在Objective-C中,我这样做:当然我可以通过两个数组迭代一个计数器,使用vardict:[String:Int]并逐步添加东西.但这似乎不是一个好的解决方案.使用zip和enumerate可能是同时迭代两者的更好方法.然而,这种方法

  10. 如何在iOS中检测文本(字符串)语言?

    例如,给定以下字符串:我想检测每个声明的字符串中使用的语言.让我们假设已实现函数的签名是:如果没有检测到语言,则返回可选字符串.因此,适当的结果将是:有一个简单的方法来实现它吗?

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部