swift -- 基础(2元组续篇)

这次接着上一遍的元组继续写
  • 以前没有元组之前Object-C是通过传入指针或者是结构体的方式来返回多个值的,然而有了元组之后就可以实现让一个函数返回多个值
// 补充:
/**
*  元组的定义
*  一元元组,会将编译器优化为其实际元素的类型
*/
var t1 :(String) = ("我是字符串")// 等同于下边一行代码
//var t1 : String = "我是字符串"
// 可以缺省类型 var t1 = "我是字符串"
// 注意!!!:由于t1实际为String类型,因此t1.0的访问会报错
// 元组支持嵌套
var t_t : (String,(String ,Int)) = ("基本信息",("芳草天",25))
// 可以将元组的类型重定义为一个类型名
  typealias namedFinahsesType = (first:String,second:String,third:String)
  let namedFinshes:namedFinahsesType = ("芳草天","洲洲","25")

/*元组的数据访问*/
// 当元素未命名时,采用自然顺序访问,序号从0开始
var t2 = ("芳草天",25)
var names = t2.0
var ages = t2.1
print("name:\(names),age:\(ages)")

//当元素命名时,可以用命名访问数据,当然仍然可以使用序号访问
var t3 = (name:"洲洲",age:25)
names = t3.0//或者names = t3.name
ages = t3.age
print("name:\(names).age:\(ages)")

// 可以用多个变量同时进行访问
var t4 = (name:"芳草天洲洲",22)
var (name3,age3) = t4// 即可同时获取name,age
var (name, _) = t4// 不需要时参数可以缺省

// 注意:元组为数值类型。因此元组的copy是值copy
var t5 = (name:"路飞",18)
var t5_copy = t5
t5.name = "乔巴"
print("\(t5_copy.name)")// 打印结果:路飞

// 关于元组的访问级别
/**
* 元组的访问级别取决于它包含的元素,比如元组里的元素都是private级别的,那么该元组也是private级别
* 遵循最小原则,也就是说如果一个元组中有两个元素,一个private级别,另一个为public级别,那么该元组遵循最小原则,它的访问级别为private级别
*/
// 元组数据修改
// 虽然元组的数据不能增删,但是可以修改的
var t6 = (name:"芳草天洲洲",26)
t6.name = "李白"
print("\(t6.name)")// 打印李白
t6.name = "碧莲洲洲"
print("\(t6.name)")
// 但是数据类型不能改变
//t6.name = 30//报错

//如果是常量定义,元组的数据不能改变
let t7 = (name:"娜美",22)
// t7.name = "迦娜"// 报错
// 当然如果你指定数据类型为Any,这种情况下数据类型可以被改变
var t_any :(String,Any) = ("娑娜",18)
t_any.1 = "娑娜很大但是年龄小哦"// Any不限定数据类型
/** 元组与Array, Dictionary的组合定义**/

// 数组嵌套元素
var moneyArray:[(Int,String)] = [(20,"Cidy"), (18,"Nickle"), (14, "Quarter")]

// 字典嵌套元组
var userInfoDic:[String:(Int,String)] = ["cidy":(20,"girl"), "nickl":(15,"boy")]
print(userInfoDic) // 打印:["cidy": (20, "girl"), "nickl": (15, "boy")]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,752评论 0 38
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,742评论 0 4
  • 又是一天即将的结束,有种昏沉。从早上的正常熬夜,到早上的懒床,趁着同事感冒,给我们放了一上午的假,顺其自然的赖床成...
    回希阅读 1,684评论 0 0
  • 微信刚刚发布的时候,不知道多少微信群主就是在浪费时间,不擅长,想放弃的呼声中硬生生地杀出了一条血路,血淋淋躺下的是...
    复苏森林阅读 1,603评论 0 1
  • 1.安装python:安装完成后在cmd中输入python看到以下信息即安装成功 3.创建一个目录如C:\virt...
    co可丁阅读 3,875评论 0 1

友情链接更多精彩内容