首页 > 其他分享 >Swift-基础语法之变量&常量&元组

Swift-基础语法之变量&常量&元组

时间:2023-08-23 13:02:37浏览次数:39  
标签:常量 数据类型 元组 let var Swift 变量

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

var myVariable = 42
myVariable = 50
let myConstant = 42

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

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

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

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

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

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

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

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

var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "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 = 10  //定义变量并初始化
number = 20          //变量的数值可以修改

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

02 类型推导

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

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

Swift-基础语法之变量&常量&元组_元组

03 类型转换

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

//赋值操作
let hnumber3:Int = Double(10.0)   //不同数据类型的数据不允许赋值


//运算
let hnumber4 = 10
let hnumber5 = 88.8
let hnumber6 = Double(hnumber4) + hnumber5

二、元组

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

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

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

//定义并初始化元组
let person:(String,Int,Double) = ("hhggll",21,99.9)
//提取元组的内容
person.0
person.1
person.2

//给元组的元素设置名称
let hPerson = (name:"hhggll",age:27,score:99.0)
//提取元组的内容
hPerson.name
hPerson.age
hPerson.score

//提取元组数据
let (name,age,score) = ("hhggll",21,99)
name
age
score

 作者:稻草人11223

标签:常量,数据类型,元组,let,var,Swift,变量
From: https://blog.51cto.com/u_13188203/7201418

相关文章

  • swift学习笔记之控制流
    控制流:1、if语句letcount=5ifcount>=3{print("yes")}else{print("no")}2、switch语句(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句letfruit="apple"switchfruit{case"a......
  • swift学习笔记之---数组、字典、枚举、结构体
    1、数组-Arraylettypes=["none","warning","error"]//省略类型的数组声明letmenbers=[String]()//声明一个空数组menbers.append("six")//添加元素menbers+=["seven"]//添加元素menbers.insert("one"......
  • Swift - 基本数据类型,及常/变量声明
    用oc编码已经有段时间了,这期间一直在使用oc和学习oc的编码技巧,忽闻小伙伴说:swift已经是趋势了,有时间多看看吧所以我也开始从网上搜索博客,感谢hangge.com的博客,如有冒犯之处,请多见谅,因为是看着大神的博客开始swif全面的学习之路!方向已定,无论前面有多难,都要走下去! 一、swift中基本的......
  • Swift - 使用arc4random()、arc4random_uniform()取得随机数
    arc4random()这个全局函数会生成9位数的随机整数1,下面是使用arc4random函数求一个1~100的随机数(包括1和100)lettemp:Int=Int(arc4random()%100)+1print(temp)2,下面是使用arc4random_uniform函数求一个1~100的随机数(包括1和100)lettemps:Int=Int(arc4random_uniform(10......
  • Swift - 区间运算符(... 和 ..<)
    区间运算符可以用来表示两个操作数之间的范围集合1,闭区间运算符:a...bforicountin512...1024{print(icount)//从512遍历到1024(包括1024)}2,半闭区间运算符:a..<betfruts=["apple","orange","banana"]leticount=fruts.countforii......
  • 元组
    1.定义元组(Tuple)合并了不同类型的对象。2.使用lettom:[string,number];tom[0]='Tom';tom[1]=25;tom[0].slice(1);tom[1].toFixed(2);3.注意事项当直接对元组类型的变量进行初始化或者赋值的时候,需要提供所有元组类型中指定的项。lettom:[string,number......
  • Leetcode 两个队列实现栈 swift
    queue1 是最后生成的栈queue2是临时队列,把新进来的先放进去,再把queue1里的数据从头到尾读进去,然后互换classMyStack{varqueue1:[Int]=[]varqueue2:[Int]=[]init(){}funcpush(_x:Int){queue2.append(x)whil......
  • swift--控件工厂类的实现
    控件工厂类,简而言之就是,减少代码的复用率,只在哪里用,然后在哪里调:代码如下:importUIKitclassViewFactory:UIView,UITextFieldDelegate{//默认控件的尺寸classfuncgetDefaultFrame()->CGRect{letdefaultFrame=CGRect(x:0,y:0,width:100,height......
  • swift--动画效果
    一、for循环创建4*4个view,然后对立面的所有view进行动画,这里列集中动画的效果:1,旋转动画fortileinbackgrounds{//现将数字块大小职位原始尺寸的1/10tile.layer.setAffineTransform(CGAffineTransform(scaleX:0.1,y:0.1))......
  • swift--使用 is 和 as 操作符来实现类型检查和转换 / AnyObject与Any的区别
    声明几个类://动物类classAnimal{}//陆地动物类classterricole:Animal{}//海洋动物类classSeaAnimals:Animal{}1,is用来做类型检查letcat=terricole()letfish=SeaAnimals()letarr=[cat,fish]foranima......