iOS - Swift Struct 结构体

1、Struct 的创建

1.1 基本定义

  • 结构体的定义

        // 定义结构体数据类型
        struct BookInfo {
    
            // 每个属性变量都必须初始化
            var ID:Int = 0
            var Name:String = "Default"
            var Author:String = "Default"
            var RootType:String = "Default"
        }   
  • 结构体的使用
        // 定义结构体变量
        let book = BookInfo()
    
        // 结构体类型变量值的调用
        print("\(book.ID), \(book.Name), \(book.Author), \(book.RootType)")

1.2 含方法的定义

  • 结构体的定义

        // 定义结构体数据类型
        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
            }
    
            // 方法定义
            func sum(a:Int) -> Int {
    
                return (self.mark1 + self.mark2 + self.mark3) * a
            }
        }
  • 结构体的使用
        // 定义结构体变量
        let mark = markStruct(mark1: 11, mark2: 22, mark3: 33)
    
        // 结构体类型变量值的调用
        print("\(mark.mark1), \(mark.mark2), \(mark.mark3)")
    
        // 结构体类型方法的调用
        print(mark.sum(2))
时间: 2024-10-24 19:20:28

iOS - Swift Struct 结构体的相关文章

iOS - OC Struct 结构体

1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体类型变量 // 结构体类型变量为 d1,并赋值 struct MyDate1 d1 = {2016, 1, 6}; // 结构体类型变量值的调用 NSLog(@"d1: %d/%d/%d", d1.year, d1.month, d1.day); 2.typedef 定义结构体与调用 //

c++-Visula Basic 6.0语言调用C++ struct结构体中的字符串问题

问题描述 Visula Basic 6.0语言调用C++ struct结构体中的字符串问题 VB6调用C++ DLL结构体struct中的字符串,内存预分配的写法是什么,内存回收怎么做?VB不能用指针的谢谢 解决方案 VB不支持指针,一般你可以定义成局部变量,这样函数退出会自动回收的. 解决方案二: c++公用体union.结构体struct内存分配问题

struct结构体的是什么情况?c++

问题描述 struct结构体的是什么情况?c++ struct jud { int x,y,t; jud (int xx,int yy,int tt) { x=xx;y=yy;t=tt; } }; 解决方案 结构体也可以有构造函数的,与 class 相似.只是其成员默认是 public 的,而 class 默认是 private 的. 解决方案二: 结构体能够继承,提供了构造函数 还可以初始化 解决方案三: 结构体也有构造函数,只不过他和C++类最大的区别就是他的成员默认是public的,和C语

详解C++程序中定义struct结构体的方法_C 语言

什么是结构体?简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struct

struct结构体基础知识

/* ============================================================================ Name : TestStruct.c Author : lf Version : Copyright : Your copyright notice Description : struct结构体基础知识 ==================================================================

深入剖析C++中的struct结构体字节对齐_C 语言

什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证

关于使用struct结构体.

问题描述 我用两个数据表,表1是学生档案(主表)表2是学生选修的科目(明细表),两个表通过ID相联,然后我建了两个结构体(如下),这两个结构体定义的变量跟表的字段是一致的.现在我想将主表和明细表的字段值传到结构体中,怎么通过循环来传到结构体对应的变量中?然后怎么循环从结构体中输出值?publicstructstudent{publicstringname;publicintage;publicstringclass;}publicstructstudent_subject{publicstrin

为什么要把 Fromname 定义为 struct结构体类型的

问题描述 publicclassSs03an:FormMaintenanceWithGrid{#regionGridNameStructprotectedstructGridName{publicconststringGridScrItm="GridScrItm";}#endregion#regionScrItmGridIteminnerclassprotectedclassScrItmGridItem:TableGridItem{publicScrItmGridItem(ArrayL

Swift结构体与类

在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之.而Swift语言却非常重视结构体,把结构体作为实现面向对象的重要手段.Swift中的结构体与C++和Objective-C中的结构体有很大的差别,C++和Objective-C中的结构体只能定义一组相关的成员变量,而Swift中的结构体不仅可以定义成员变量(属性),还可以定义成员方法.因此,我们可以把结构体看做是一种轻