Swift 的 结构体

Swift 结构体是构建代码所用的一种通用且灵活的构造体。

我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。

与 C 和 Objective C 不同的是:

结构体不需要包含实现文件和接口。

结构体允许我们创建一个单一文件,且系统会自动生成面向其它代码的外部接口。

结构体总是通过被复制的方式在代码中传递,因此它的值是不可修改的。

语法

我们通过关键字 struct 来定义结构体:

struct nameStruct {

Definition 1

Definition 2

……

Definition N}

实例

我们定义一个名为 MarkStruct 的结构体 ,结构体的属性为学生三个科目的分数,数据类型为 Int:

struct MarkStruct{

var mark1: Int

var mark2: Int

var mark3: Int

}

我们可以通过结构体名来访问结构体成员。

结构体实例化使用 let 关键字:

import Cocoa

struct studentMarks {

var mark1 = 100

var mark2 = 78

var mark3 = 98

}

let marks = studentMarks()

print("Mark1 是 \(marks.mark1)")

print("Mark2 是 \(marks.mark2)")

print("Mark3 是 \(marks.mark3)")

以上程序执行输出结果为:

Mark1 是 100

Mark2 是 78

Mark3 是 98

实例中,我们通过结构体名 ‘studentMarks‘ 访问学生的成绩。结构体成员初始化为mark1, mark2, mark3,数据类型为整型。

然后我们通过使用 let 关键字将结构体 studentMarks() 实例化并传递给 marks。

最后我们就通过 . 号来访问结构体成员的值。

以下实例化通过结构体实例化时传值并克隆一个结构体:

import Cocoa

struct MarksStruct {

var mark: Int

init(mark: Int) {

self.mark = mark

}

}

var aStruct = MarksStruct(mark: 98)

var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体!

bStruct.mark = 97

print(aStruct.mark) // 98

print(bStruct.mark) // 97

www.fzmajiang.com

以上程序执行输出结果为:

98

97

结构体应用

在你的代码中,你可以使用结构体来定义你的自定义数据类型。

结构体实例总是通过值传递来定义你的自定义数据类型。

按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:

结构体的主要目的是用来封装少量相关简单数据值。

有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用。

任何在结构体中储存的值类型属性,也将会被拷贝,而不是被引用。

结构体不需要去继承另一个已存在类型的属性或者行为。

举例来说,以下情境中适合使用结构体:

几何形状的大小,封装一个width属性和height属性,两者均为Double类型。

一定范围内的路径,封装一个start属性和length属性,两者均为Int类型。

三维坐标系内一点,封装x,y和z属性,三者均为Double类型。

结构体实例是通过值传递而不是通过引用传递。

import Cocoa

struct markStruct{

var mark1: Int

var mark2: Int

var mark3: Int

init(mark1: Int, mark2: Int, mark3: Int){

self.mark1 = mark1

self.mark2 = mark2

self.mark3 = mark3

}

}

print("优异成绩:")

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)

print(marks.mark1)

print(marks.mark2)

print(marks.mark3)

print("糟糕成绩:")

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)

print(fail.mark2)

print(fail.mark3)

以上程序执行输出结果为:

优异成绩:

98

96

100

糟糕成绩:

34

42

13

www.tiqianzd.com

以上实例中我们定义了结构体 markStruct,三个成员属性:mark1, mark2 和 mark3。结构体内使用成员属性使用 self 关键字。

从实例中我们可以很好的理解到结构体实例是通过值传递的.

时间: 2024-10-25 22:33:32

Swift 的 结构体的相关文章

5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左到右对应0,1,2,3 enum CompassPoint { case North case South case East case West //enum中可以定义方法 func show(){ print(self) } } //定义enum 变量 var p = CompassPoint.Nor

Swift的结构体,枚举,可选Optional,可选链

//: Playground - noun: a place where people can play import Cocoa var str0 = "Hello, playground" //类是引用类型,结构体与枚举是值类型 //*****************结构体*************** struct Point { var x = 0 var y = 1 //结构体的的方法 //为了能够在实例方法中修改属性值,可以在方法定义前添加关键字mutating mutat

Swift Struct 结构体

前言 结构体是值类型,并且只有在赋予变量或常量,或者被函数调用时才被赋值. 1.结构体的创建 结构体基本结构 struct 结构体名 { var 或 let 字段名 = 初始化值 var 或 let 字段名: 类型 } struct Student { var age = 0 } var stu = Student() /// struct 结构体关键字 /// Student 结构体名称 /// student() 创建一个结构体变量 1.1 标准定义 结构体的定义 定义结构体字段时可以直接定

Swift 类 结构体

passport.baidu.com/?business&un=%E9%98%BF%E5%9F%8E%E5%B0%8F%E5%A7%90%E8%81%94%E7%B3%BB%5F%5F#0 passport.baidu.com/?business&un=%E7%99%BD%E5%B1%B1%E5%B0%8F%E5%A7%90%E6%83%85%E4%B8%80%E5%A4%9C#0 passport.baidu.com/?business&un=%E7%99%BD%E5%B1%B1

Swift入门篇-结构体

前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚. 一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一

swift类和结构体004-类和结构体基本使用

//: Playground - noun: a place where people can play import UIKit //----类和结构体------// //1.结构体的定义 struct Size { //结构体中的属性,给定默认值 var width = 375 var height = 667 //Swift的结构体中可以定义方法,与C.OC不同 func show() { print("(\(width):\(height))") } } var size =

【Swift初见】Swift结构体

结构体struct我们应该不会陌生,从我们刚开始接触C语言的时候就一直学这个,OC中也有,swift的结构体和C和OC的结构体类似: 当我们定义一个结构体的时候,格式如下: struct Rect { var width : Double = 0.0 var height : Double = 0.0 } 我们这边定义了一个Rect结构体,里面有两个变量,初始值都为0.0,创建一个结构体实例: var rect : Rect = Rect() 看起来是不是非常的熟悉?跟C还有OC很类似吧. 访问

Swift的闭包,枚举,类和结构体

闭包(Closures) 使用过其它语言的应该对代码块并不陌生,Swift中的闭包与C,OC中的Block相似. 表示自包括的函数代码块.能够在代码中传递和使用. 而且能够捕获和存储上下文的变量以及常量值,Swift会为你进行捕获相关的内存操作. 上一篇文章提到的函数.也是一种特殊的闭包.详细在: 全局函数是有名字可是不会捕获不论什么值的闭包. 嵌套函数是有名字且能够捕获域内值的闭包. 闭包表达式是利用轻量级语法写的能够捕获上下文值的匿名闭包. 基本的语法 表达式的一般语法以及简化过程 上面罗列

Swift 结构体和类

//*---------------------结构体-------------*/ //swift结构体也具有封装的概念 //swift结构体比OC C语言里面的结构体更加进了一步,里面可以有方法,更接近我们的类 //结构体的定义格式 struct结构体名{成员变量} struct rect { var width:Double //按构造方法赋初值 var height:Double //方法 func getHeightWidth() -> (x:Double,y:Double)//->