Swift基础语法(一)
swift是一个基于objc进化过来的一个新的 OS X/IOS编程语言,而objc是基于c语言进化过来的一门编程语言。所以理论上说objc与c++是同一代产物并且objc与c++是相互独立的两套体系,知道这些以后你就不难理解为什么objc与c++混编要把文件名改成mm而objc与c混编不用修改文件名了
常量与变量
在swift中常量用let定义,变量用var定义
定义格式
//定义并且不赋值
//常量
let 标识符 : 数据类型?
//变量
var 标识符 : 数据类型?
//定义且赋值
//常量
let 标识符 : 数据类型=值
//变量
var 标识符 : 数据类型=值
特别说一下swift的标识符是用Unicode字符编码表示的,也就是说你出来不能用数字、敏感字段定义变量,其余的各种文字随便用这与objc和c/c++有很大不同。objc和c/c++的标识符是用ASCⅡ码实现的。知道这个原理之后,我做了个实验。
//函数声明
func 测试函数(text:String){
println("\(text)")
}
//函数调用
测试函数("")
编译、执行一切OK
基本类型
基本类型这一块swift是兼容objc类型的我只对新增类型做一个介绍
数字类型
swift的数字类型有Integer/Int/Float/Double
Integer类型其实就是objc里的Int8类型
Int/Float/Double 根据运行机器的CPU位数作为变量位数。比如在iPhone5上Int是Int32而在iPhone5s上Int是Int64以此类推
数字表示:
十进制:直接写数字 比如var a =10
二进制:0b加数字 比如 var a=0b1010
八进制:0o加数字 比如 var a=0o12
十六进制:0x加数字 比如 var a= 0x0A
以上这四个变量的十进制表示都是10
类型别名(typealias)
swift里的typealias相当于c语言里的typeof
布尔类型
swift里的bool相当于与oc里的BOOL只有两个值:true ,false
swift里的条件判断返回的都是bool
//在c里我们可以这么用if
int a=;
if(a)
printf("%d",a);
//但我们同样的代码放到swift里
var a:Int=
if a{
println(a)//error
}
元祖(Tuples)
swift里的tuples当我第一次看到他时,以为他是数组(我X,数组不是Array么?Tuples是什么鬼)仔细一看不是。它既能当数组又能当强类型字典,官方文档里说主要用于函数返回。其实我认为它就是个多功能的结构体(c++),随时使用定义简单
//定义方式1
let a=(,"age")
//输出15
println(a.)
//输出age
println(a.)
//定义方式二
let b=(name:"Tony",age:)
//输出name:Tony age:15
println("name:\(a.name) age:\(a.age)")
可选类型(Optionals)
与其说Optionals是基本类型不如说它是每个基本类型的必要属性,如果有值Optionals为true反之Optionals为false。
var a=""
if let b=a.toInt(){
println(b!)
}
如果if后面直接加一个变量是判断这个变量有没有值。 b后面的感叹号是代表b不为nil toInt()函数是把字符串转换为Int类似 你可以把if去掉再把123改成hello试试看会发生什么
调试专用函数
调试专用函数assert(条件,字符串)如果条件不成立输出字符串
今天就写这么多,如有错误尽请指教。本人感激不尽
Swift基础语法(一)的更多相关文章
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
本文来自Swift中文开发组,感谢翻译者的分享. 本文将分几部分对Swift对ios的语法做讲解.本文为第一节,主要讲解基础语法. 常量和变量 常量和变量把一个名字(比如maximumNumberOf ...
- Swift基础语法
简介 特点 (1)优于OC,快速,安全 (2)取消了预编译指令包括宏定义(OC用的太多了) (3)取消了OC指针和不安全访问的使用(看不到星星了) (4)舍弃 Objective-C 早期应用 Sma ...
- Swift基础语法学习总结一
1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型,几乎所有类型都是可打印的. ...
- swift基础语法(四) 函数、闭包(Closures)
//函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...
- Swift基础语法(三)
Array数组在swift中Array相当于oc中的NSMutableArray(变长数组) //1.定义数组 var numarr:Int[] = [,,,,]; var strarr:String ...
- Swift基础语法(二)
操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...
- Swift基础语法 、 元组(Tuple)
字符串的使用 1.1 问题 Swift的String和Character类型提供了一个快速的,兼容Unicode的方式来处理代码中的文本信息.创建和操作字符串的语法与C语言中字符串类似.本案例将学习如 ...
- Swift基础语法学习总结二
1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返 ...
随机推荐
- [译]Node.js - Event Loop
介绍 在读这篇博客之前,我强列建议先阅读我的前两篇文章: Getting Started With Node.js Node.js - Modules 在这篇文章中,我们将学习 Node.js 中的事 ...
- UICollectionReusableView 使用时的一些问题
在使用UICollectionView 时, 设置分区头时, - (UICollectionReusableView *)collectionView:(UICollectionView *)coll ...
- C语言 值传递和地址传递
不少同学在学到C语言的指针部分时感到很困惑,对经常提到的"值传递"和"地址传递"两个概念弄不 明白.实际上,因为地址本身也可以作为一个特殊的"值&qu ...
- Android菜鸟成长记16 -- JSON的解析
JSON的定义 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- 不谈业务运维的IT主管早晚被淘汰 这里是10条干货
大数网 吴玉征 先说个真实的故事. 前一段时间,有一家知名的国际连锁咖啡公司的自助交易系统(支付宝.微信.ApplePAY)特别慢,工作人员也不知道为什么.由于他们刚上了业务运维,支持这套系统的云智慧 ...
- ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AU ...
- MSSQL附加数据库5120错误(拒绝访问)处理方法
一. 右键需要附加的数据库文件,弹出属性对话框,选择安全标签页. 找到Authenticated Users用户名. 如未找到,进行Authenticated Users用户名的添加. 二. 添加Au ...
- KMP匹配算法
先来说一下回溯法匹配字符串: 对于主字符串有一个target_index,以target_index(不动)为起点,匹配字符串pattern的长度+target_index为终点,逐个进行比较,当发现 ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
- es6之set和map
1.set ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值,set本身就是构造函数,所以可以通过new的方式来创建对象 // 例一 可以做数组去重用 var set ...