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 中的事 ...
- 正确理解javascript当中的面向对象
认识面向对象: 为了说明 JavaScript 是一门彻底的面向对象的语言,首先有必要从面向对象的概念着手 , 探讨一下面向对象中的几个概念: 1.万物皆为空:万物皆对象 2.对象具有封装和继承特性 ...
- List<Object> to JSONArray一
package com.beijxing.TestMain; import java.util.ArrayList; import java.util.List; import com.beijxin ...
- C++函数CString类常用函数
C++ STL库里有很多与字符串操作相关的函数,熟练应用STL,字符串的处理将变得轻松.自在. 字符串截取函数: 1.CString Left( int nCount ) const; //从左 ...
- Observer(观察者)-对象行为型模式
1.意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 2.别名 依赖(Depenents),发布-订阅(Publish-subscribe ...
- Linux系统中配置jdk
在Linux系统下安装jdk 1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...
- Xml与DataTable相互转换方法
1.Xml与DataTable相互转换方法:http://www.cnblogs.com/lilin/archive/2010/04/18/1714927.html
- Android 7.0 UICC 分析(二)
本文讲解UiccCard类 /frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java U ...
- NSDate和NSString相互转换
一.NSDate转NSString //获取系统当前时间 NSDate *currentDate = [NSDate date]; //用于格式化NSDate对象 NSDateFormatter *d ...
- 拼图 canvas分割 dom拖拽 pc 移动端
参考:Canvas drag 实现拖拽拼图小游戏 参考的案例,不支持手机端.总结下实现过程中遇到的小坑. gitHub:https://github.com/WppFrontEnd/puzzle 大概 ...