Swift在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
实验四、学生信息查询实验 发布于:2023-12-06 06:47 课内作业,约瑟夫算法 发布于:2023-11-20 08:55 综合性实验 发布于:2023-11-16 11:02 找出多个数组中的最大数字 发布于:2023-09-22 17:22 实验五 Swift枚举&协议&扩展&泛 发布于:2023-09-20 18:41 swift输入输出类型 发布于:2023-09-13 13:38 实验四 函数类型 发布于:2023-09-17 13:17 斐波那契数列的动态规划和递归形式 发布于:2023-09-11 14:09 day03 数组,集合,字典,字符串 发布于:2023-09-11 11:45 实验三,数组 发布于:2023-09-17 12:58 Swift运算符&控制流 发布于:2023-09-06 16:06 实验二 Swift运算符&控制流 发布于:2023-09-10 17:00 day01实验1 发布于:2023-09-05 15:27 实验一 Swift编程步骤&数据类型 发布于:2023-09-10 17:00 swift json decode 发布于:2023-08-25 11:10 get set 语法 发布于:2023-08-02 14:42 6-照片获取/拍摄 发布于:2023-06-30 19:23 5-视频教程生成 发布于:2023-06-30 19:16 2-物体识别 & 2D渲染(可后续优化为3D) 发布于:2023-06-30 19:06 1-AR互动小游戏 发布于:2023-06-30 18:44 AR基础功能函数 发布于:2023-06-30 18:15 day1-基础知识学习 发布于:2023-06-30 15:46 # swift测试学习 在这里将快速实现Swift的所有基本功能,并读懂更上一层的代码库 发布于:2023-06-21 15:04 Swift初尝试 发布于:2023-06-20 15:37 试用本系统 发布于:2023-06-14 12:16 车型识别的实现 发布于:2023-06-09 15:27 IOS第三章 发布于:2023-06-09 14:58 相册图片的显示 发布于:2023-06-09 14:54 车型识别能力的调用 发布于:2023-06-09 14:45 IOS第四章 发布于:2023-06-09 14:55 服务器设置和文件上传 发布于:2023-06-09 14:10 UILSession的用法 发布于:2023-06-09 13:59 数据JSON解析实例 发布于:2023-06-09 13:44 IOS第六章 发布于:2023-06-09 20:17 奏响乐队的凯歌 发布于:2023-06-09 13:18 五角星的绘制 发布于:2023-06-09 12:07 IOS第六章 发布于:2023-06-09 12:32 IOS第六章 发布于:2023-06-09 10:04 第六章争做车型识别达人 发布于:2023-06-09 09:59 六zxcc 发布于:2023-06-09 09:58 ios 第六章 发布于:2023-06-09 09:53 ios第五章 发布于:2023-06-09 09:59 第五章全部 发布于:2023-06-09 09:51 ios 第五章 发布于:2023-06-09 09:52 ios第三章 发布于:2023-06-09 09:50 ios 第四章 发布于:2023-06-09 09:50 第六章代码 发布于:2023-06-09 09:49 第六章代码 发布于:2023-06-09 09:48 4.2.5游戏提示和关卡1.游戏提示 发布于:2023-06-09 09:47 第五章代码 发布于:2023-06-09 09:46 [更多]
显示目录



Swift 类

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

我们可以为类定义属性(常量、变量)和方法。

与其他编程语言所不同的是,Swift 并不要求你为自定义类去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类,系统会自动生成面向其它代码的外部接口。

类和结构体对比

Swift 中类和结构体有很多共同点。共同处在于:

  • 定义属性用于存储值
  • 定义方法用于提供功能
  • 定义附属脚本用于访问值
  • 定义构造器用于生成初始化值
  • 通过扩展以增加默认实现的功能
  • 符合协议以对某类提供标准功能

与结构体相比,类还有如下的附加功能:

  • 继承允许一个类继承另一个类的特征
  • 类型转换允许在运行时检查和解释一个类实例的类型
  • 解构器允许一个类实例释放任何其所被分配的资源
  • 引用计数允许对一个类的多次引用

语法:

Class classname {
   Definition 1
   Definition 2
   ……
   Definition N
}

类定义

class student{
   var studname: String
   var mark: Int 
   var mark2: Int 
}

实例化类:

let studrecord = student()

实例

import Cocoa

class MarksStruct {
    var mark: Int
    init(mark: Int) {
        self.mark = mark
    }
}

class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("成绩为 \(marks.mark)")

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

成绩为 300

作为引用类型访问类属性

类的属性可以通过 . 来访问。格式为:实例化类名.属性名

import Cocoa

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

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

Mark1 is 300
Mark2 is 400
Mark3 is 900

恒等运算符

因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。

为了能够判定两个常量或者变量是否引用同一个类实例,Swift 内建了两个恒等运算符:

恒等运算符 不恒等运算符
运算符为:=== 运算符为:!==
如果两个常量或者变量引用同一个类实例则返回 true 如果两个常量或者变量引用不同一个类实例则返回 true

实例

import Cocoa

class SampleClass: Equatable {
    let myProperty: String
    init(s: String) {
        myProperty = s
    }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
    return lhs.myProperty == rhs.myProperty
}

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

if spClass1 === spClass2 {// false
    print("引用相同的类实例 \(spClass1)")
}

if spClass1 !== spClass2 {// true
    print("引用不相同的类实例 \(spClass2)")
}

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

引用不相同的类实例 SampleClass
由JSRUN为你提供的Swift在线运行、在线编译工具
        JSRUN提供的Swift 在线运行,Swift 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout