swift 3.0

字符串的介绍

OC和Swift中字符串的区别

  • 在OC中字符串类型时NSString,在Swift中字符串类型是String
  • OC中字符串@"",Swift中字符串""

使用 String 的原因

  • String 是一个结构体,性能更高
  • NSString 是一个 OC 对象,性能略差
  • String 支持直接遍历
  • Swift 提供了 String 和 NSString 之间的无缝转换

字符串的使用

遍历字符串

// 字符串遍历
var str = "Hello, Swift"
for c in str.characters {
print(c)
}

字符串拼接

//两个字符串的拼接
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
let str4 = str1.appending(str2) //字符串和其他数据类型的拼接
let name = "syl"
let age = 18 let info = "my name is \(name), age is \(age)" //字符串的格式化
比如时间:03:04
let min = 3
let second = 4 let time = String(format: "%02d:%02d", arguments: [min, second])
//字符串的截取

// Swift中提供了特殊的截取方式
// 该方式非常麻烦
let firstStr = "摩仑科技有限公司"
let subStr0 = firstStr.substring(to: "摩仑科技".endIndex)
let subStr1 = firstStr.substring(from: "摩仑科技".endIndex) // Index创建较为麻烦
// 简单的方式是将String转成NSString来使用
// 在标识符后加:as NSString即可
let myStr = "http://www.cnblogs.com/ShaoYinling/"
var subStr = (myStr as NSString).substringFromIndex(4)
subStr = (myStr as NSString).substringToIndex(3)
subStr = (myStr as NSString).substringWithRange(NSRange(location: 4, length: 5))

数组的介绍

  • Swift中的数组
  • swift数组类型是Array,是一个泛型集合

数组的初始化

  • 数组分成:可变数组和不可变数组

    • 使用let修饰的数组是不可变数组
    • 使用var修饰的数组是可变数组

数组的初始化

// 定义一个可变数组,必须初始化才能使用
var array1 : [String] = [String]() // 定义一个不可变数组
let array2 : [NSObject] = ["syl", "18"] // 在声明一个Array类型的时候可以使用下列的语句之一
var stuArray1:Array<String>
var stuArray2: [String] // 声明的数组需要进行初始化才能使用,数组类型往往是在声明的同时进行初始化的
// 定义时直接初始化
var array = ["syl", "man", "100"] // 先定义,后初始化
var array : Array<String>
array = ["syl", "man", "100"]

对数组的基本操作

// 添加数据
array.append("HeNan") // 删除元素
array.removeFirst() // 修改元素
array[0] = "SYL" // 取值
array[1]

数组的遍历

// 遍历数组
for i in 0..<array.count {
print(array[i])
} // forin方式
for item in array {
print(item)
} // 设置遍历的区间
for item in array[0..<2] {
print(item)
} // enum 遍历
for en in array2.enumerated() {
print(en)
// 下标
print(en.offset)
// 值
print(en.element)
}
// 下标和数值同时 遍历
for (n,s) in array2.enumerated() {
print(n , "==", s);
} // 反序遍历
for s in array2.reversed() {
print(s)
} // 遍历下标和数值 反序
for (xxx,ooo) in array2.enumerated().reversed() {
print(xxx ,"====" ,ooo)
}

数组的合并

// 数组合并
// 注意:只有相同类型的数组才能合并
var array = ["syl", "man","1.80"]
var array1 = ["100", "HeNan"]
var array2 = array + array1;

swift 3.0基本数据语法的更多相关文章

  1. Swift 2.0基本语法

    内容包括:01变量&常量 02分支 03循环 04字符串 05数组 06字典 07函数 01变量&常量 //: Playground - noun: a place where peo ...

  2. swift3.0基础语法

    swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...

  3. iOS开发系列--Swift 3.0

    概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行 ...

  4. Swift 3.0 【Swift 3.0 相较于 Swift 2.2 的变化】

    一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时 ...

  5. Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性

    由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主 ...

  6. Swift 2.0初探

    转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引 ...

  7. 一起聊聊 Swift 3.0

    Swift3.0将会给我们带来哪些改变: 1. 稳定二进制接口(ABI) ABI是什么呢?API大家都知道是应用程序接口 API只是提供函数签名 而ABI是系统和语言层面的 如果ABI稳定 意味着以后 ...

  8. iOS开发——新特性OC篇&Swift 2.0新特性

    Swift 2.0新特性     转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度 ...

  9. Swift 2.0初探:值得注意的新特性

    转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上A ...

随机推荐

  1. 重新开始吧(ADB+AndroidManifest.xml)

    我现在默认已经搭建好了开发环境.如果没有,可以参见去Google一下,或者我上两篇文章中也有提到. 先补充一点: SDK不用FQ.也能更新 修改hosts文件 下载sdk版本: 在hosts文件中追加 ...

  2. 关于javascript里面仿python切片操作数组的使用方法

    其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...

  3. 制作Andriod程序的数字签名需要使用JDK

    原文地址:制作Andriod程序的数字签名需要使用JDK作者:黄金大劫案88  制作Andriod程序的数字签名需要使用JDK,先确认本机是否安装了JDK,在JDK目录下有一个KEYTOOL工具,这个 ...

  4. Codeforces Round #368 (Div. 2) B. Bakery (模拟)

    Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...

  5. dedecms lnmp 环境搭建。备忘录非教程

    ssh链接到linux服务器,我用的centos 6.5 64位的. #设置dns,ect/reserv.conf 设置,注释掉原来的nameserver,添加nameserver=8.8.8.8访问 ...

  6. HDU 1787 GCD Again(欧拉函数,水题)

    GCD Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  7. Could not find a transformer to transform "SimpleDataType{type=org.mule.transport.NullPayload

    mule esb报错 com.isoftstone.esb.transformer.Json2RequestBusinessObject.transformMessage(Json2RequestBu ...

  8. [转载]开机出现A disk read error occurred错误

    [此文章转载] 今天维修了一台机器,郁闷之极.最开始一直无法正确安装操作系统,一安装总是提示文件无法写入内存.换了光盘.光驱都无济于事,忽然意识到是不是内存的问题,随即找了一个内存来,替换了一下,更郁 ...

  9. Angular 中得 scope 作用域梳理

    $scope 的使用贯穿整个 Angular App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $scope 就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 ...

  10. c# 调用zebra打印指令 打印到USB端口

    c# 调用zebra打印机指令打印条码,如果直接打印到lpt1端口的打印机,通过copy指令没有问题, 但如果ZEBRA打印机是通过USB连接,打印机端口为usb001,则程序不能直接拷贝到usb00 ...