swift 3.0基本数据语法
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基本数据语法的更多相关文章
- Swift 2.0基本语法
内容包括:01变量&常量 02分支 03循环 04字符串 05数组 06字典 07函数 01变量&常量 //: Playground - noun: a place where peo ...
- swift3.0基础语法
swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...
- iOS开发系列--Swift 3.0
概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行 ...
- Swift 3.0 【Swift 3.0 相较于 Swift 2.2 的变化】
一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时 ...
- Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性
由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主 ...
- Swift 2.0初探
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引 ...
- 一起聊聊 Swift 3.0
Swift3.0将会给我们带来哪些改变: 1. 稳定二进制接口(ABI) ABI是什么呢?API大家都知道是应用程序接口 API只是提供函数签名 而ABI是系统和语言层面的 如果ABI稳定 意味着以后 ...
- iOS开发——新特性OC篇&Swift 2.0新特性
Swift 2.0新特性 转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度 ...
- Swift 2.0初探:值得注意的新特性
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上A ...
随机推荐
- C++二叉树的实现
C++实现二叉查找树 啥是二叉查找树 在数据结构中,有一个奇葩的东西,说它奇葩,那是因为它重要,这就是树.而在树中,二叉树又是当中的贵族.二叉树的一个重要应用是它们在查找中的应用,于是就有了二叉查找树 ...
- MVC弹出子页面向父页面传值
实现思路是使用js在父子页面间传值 视图一代码,父页面 @{ ViewBag.Title = "Index"; } <script type="text/javas ...
- js数组依据下标删除元素
最近在项目中遇到了一些问题,基础性的东西记得不牢固,就总结一下放在这里备再次查找,对操作js数组的一些问题一些常用的记录! 1.创建数组 var array = new Array(); var ar ...
- windows7__32位下安装python2.6.6
1.下载windows7__32位的python2.6.6.mis文件,直接运行.默认安装即可 2.设置系统环境变量,目的在cmd下能敲python后能够自动调用到安装目录程序 设计如下:(我的电脑- ...
- 关于 python 的 @property总结和思考
其实关于@property我到处去搜了很多教程来看,因为公司大量使用了oop的编程而我以前很少写,所以现在来重新补过来. 从使用上来说 加了@property之后最明显的区别就是 class Stud ...
- NHibernate的简单例子
NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...
- python知识点 2014-07-09
迭代协议: 类实现方法__next__,则可以使用for.while来实现迭代 使用iter或者next实现手工迭代: L = [1,2,3] I = iter(L) print(I.next()) ...
- POJ 1160Post Office
POJ 1160 Post Office 我不知道优化,我只知道最暴力的方法,O(V^3),居然100ms不到的过了 设DP[i][j][k]表示考虑前i个小镇,放了j个邮局,最后一个邮局的所在 ...
- Weka中EM算法详解
private void EM_Init (Instances inst) throws Exception { int i, j, k; // 由于EM算法对初始值较敏感,故选择run k mean ...
- easyui中tree型控件不正常显示的处理方法
我在使用easyui中的tree控件时,出现不正常显示的现象,比如li中不能使用自定义的图标.父级展开或关闭时,其子级仍然显现并出现重叠等.找了很多资料,都没解决这个问题,后来逐个对照官方的源码,才找 ...