使用 let来声明一个常量,用 var来声明一个变量。常量的值在编译时并不要求已知,但是你必须为其赋值一次。这意味着你可以使用常量来给一个值命名,然后一次定义多次使用

var myVariable =
myVariable =
let myConstant =

常量或者变量必须拥有和你赋给它们的值相同的类型。不过,你并不需要总是显式地写出类型。在声明一个常量或者变量的时候直接给它们赋值就可以让编译器推断它们的类型。比如下面的栗子,编译器就会推断 myVariable是一个整型,因为它的初始值是一个整型。

如果初始值并不能提供足够的信息(或者根本没有提供初始值),就需要在变量的后边写出来了,用冒号分隔

let implicitInteger =
let implicitDouble = 70.0
let explicitDouble: Double =

在swift中,值永远不会隐式地转换为其他类型。如果你需要将一个值转换为不同的类型,需要使用对应的类型显示地声明

let label = "The width is"
let width =
let widthLabel = label + String(width)
print(widthLabel)

其实还有一种更简单的方法来把值加入字符串:将值写在圆括号里,然后再在圆括号的前边写一个反斜杠 ( \) ,举个栗子:

let apples =
let oranges =
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."

使用方括号( [])来创建数组或者字典,并且使用方括号来按照序号或者键访问它们的元素

var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[] = "bottle of water" var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"

使用初始化器语法来创建一个空的数组或者字典

let emptyArray = [String]()
let emptyDictionary = [String: Float]()

如果类型信息能被推断,那么你就可以用[]来表示空数组,用[:]来表示空字典。举个栗子,当你给变量设置新的值或者传参数给函数的时候

shoppingList = []
occupations = [:]

/*******基础语法*******/

一、变量和常量

01 变量和常量的定义

在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不能被修改。

  变量:var

  常量:let

  格式:修饰符(var|let) 变量|常量名称:数据类型 = 值

  注意:在使用swift开发过程中,一般情况下先使用let,只有该数据需要修改的时候再修改为var,可以保证数据安全性。

var number:Int =   //定义变量并初始化
number = //变量的数值可以修改 let hNumber:Int = //定义常量并初始化
hNumber = //常量的数据不可以修改

02 类型推导

  在swift中如果在变量|常量定义的时候进行初始化,那么数据类型可以省略不写,系统会自动推导出该变量|常量的数据类型。

  建议:在开发中应该尽量使用自动推导(除非是需要明确指定数据长度或者是需要先定义后初始化),可以最大化的降低代码的冗余。

03 类型转换

  在OC中有显示转换和隐式的类型转换,但在swift中没有隐式类型转换,只有相同类型的数据才能进行赋值或运算。

//赋值操作
let hnumber3:Int = Double(10.0) //不同数据类型的数据不允许赋值 //运算
let hnumber4 =
let hnumber5 = 88.8
let hnumber6 = Double(hnumber4) + hnumber5

二、元组

  元组是一种复合的数据类型,只要将多个数据(可以是相同或不同数据类型的)使用一夜()括起来就称之为一个元组。

  元组的优点在于,可以方便的实现函数返回多个值。

  元组的定义格式:常量|变量修饰符 常量|变量的名称:(数据类型1,数据类型2,数据类型3)=(值1,值2,值3)

//定义并初始化元组
let person:(String,Int,Double) = ("hhggll",,99.9)
//提取元组的内容
person.
person.
person. //给元组的元素设置名称
let hPerson = (name:"hhggll",age:,score:99.0)
//提取元组的内容
hPerson.name
hPerson.age
hPerson.score //提取元组数据
let (name,age,score) = ("hhggll",,)
name
age
score

Swift-基础语法之变量&常量&元组的更多相关文章

  1. swift基础语法之——变量和常量

    swift使用let关键字来定义常量,使用var来定义变量,变量在使用前必须初始化(赋初始值) swift是类型安全语音,即不同类型的变量不能一起运算,必须转成同一类型才可以 变量的类型在声明时不必给 ...

  2. Swift基础语法之变量函数

    import Foundation //变量声明使用 //使用 let 来声明常量,使用 var 来声明变量 常量只能为它赋值一次 let name="cuiyw"; var ag ...

  3. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  4. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  5. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  6. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  7. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  8. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

  9. 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例

    017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...

随机推荐

  1. freemarker遍历java.util.Properties

    java.util.Properties类 学习笔记 http://trans.blog.51cto.com/503170/110227/ FreeMarker代码 <#list systemP ...

  2. Curator入门教程1

     简介 Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理 ...

  3. 3DES加密算法32个字节

    简介 最近开发的一个项目,使用到了3DES加密算法,加密socket服务端和客户端通信的报文,因为加密秘钥是32个字节,结果折腾了一番,现在记录下来分享! 1.Des3EncryptUtils.jav ...

  4. [mmc]设备树节点含义

    &mmc3 { status = "okay"; dmas = <&edma &edma >; dma-names = "tx&quo ...

  5. guava处理字符串与List之间,字符串与map之间的转换<转>

    import static org.junit.Assert.*; import java.util.List; import java.util.Map; import org.junit.Test ...

  6. 修改 login的串口重定向

     1 在console-telnet 使用vi工具编辑 /etc/inittab 文件  vi /etc/inittab (回车)2 按 i 进入编辑模式:3 将文件中的ttyS0  改为 ttyS3 ...

  7. Liunx 安装 Mysql 5.7

    #[安装 Mysql 5.7] # 00.系统目录说明# 安装文件下载目录:/data/software# Mysql目录安装位置:/usr/local/mysql# 数据库保存位置:/data/my ...

  8. CentOS5.4安装redmine详细步骤

    >>>>概述<<<< 这里不解释什么是redmine及用来做什么,如果不知道用来做什么,估计也不会把它安装到CentOS5.4上.哈哈…… 以下为详细的 ...

  9. The declared package &quot;com.dao&quot; does not match the expected package &quot;src.com.dao&quot;

    今天把项目代码上传到svn后出现例如以下错误:The declared package "com.dao" does not match the expected package ...

  10. 查看nginx cache命中率

    一.在http header上增加命中显示 nginx提供了$upstream_cache_status这个变量来显示缓存的状态,我们可以在配置中添加一个http头来显示这一状态,达到类似squid的 ...