Swift_方法func(在类、枚举、结构体中的声明和使用 mutating func初始化值可变)

抖音Web端私信Protobuf逆向解析实战 本文详细解析了抖音Web端私信通信的逆向过程,发现其核心采用WebSocket传输Protobuf序列化数据。通过抓包获取二进制样本,利用protoc工具进行原始解码,并逐步推导和编写出对应的.proto协议定义文件,最终实现模拟消息的编码与解码,为理解私有协议逆向提供了完整实战案例。 阅读详情


import UIKit


//1结构体内方法
struct MyStruct {
    
    var a = 0 , b = 0
    //实例化的时候,实参是不可改变,如果确实需要改的话加 mutating
    mutating func changeby(justA:Int,justB:Int) {
        
        a += justA
        b += justB
    }
    
    
    mutating func changeB(x justA:Int,b justB:Int){
        
        
        self = MyStruct(a:a+justA,b:b+justB)
    }
    
    
}


//2枚举内方法
enum TinEnum {
    case a,b,c
    mutating func next(){
        
        switch self {
            
        case .a:
            self = .b
            
        case .b:
            self = .c
            
        case .c:
            self = .a
        }
        
        
    }
}


//3类方法 @discardableResult
class mm {
    

    class func n() {
        
    }
    
    @discardableResult //取消如果不使用返回值的警告
    class func unUseReuslt(d x:Int) -> Bool {
    
        if x>0
        {
            return true
        }
        else
        {
            return false
        }
    }
    
}






class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //1
        var m = MyStruct(a:10,b:20)
        m.changeby(justA: 80, justB:30)
        
        
        
        //2
        var tim = TinEnum.a
        tim.next()
        
        
        
        //3
        mm.n()
        mm.unUseReuslt(d: 20)
    }

    


}



OV9734 DATASHEET,完整规格书 OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等 立即下载

相关推荐

comsol移动网格_comsol模拟移动的纳秒脉冲激光烧蚀材料,温度场分布,结果总不理想,求助大佬!!...

本人comsol新手一枚,希望大家多多指点研究课题:纳秒脉冲激光刻蚀材料表面想用comsol模拟刻蚀过程中的温度场分布,脉宽为300ns,重复频率100kHz,光斑移动速度为5000mm/s,光斑直径50um,激光功率10W,材料种类为:有机涂层,属性如下目前,采用的是一个移动的高斯面光源x脉冲函数,脉冲函数我用的是一个周期性方波:周期性拓展后,画出来的脉冲图,不知道为什么在0~1s的区间内只有1...

weixin_33288893的博客 4741

iOS开发笔记之九十一——Swift中的mutating关键字

mutating单词翻译过来有“可变化,可改变”的意思。它主要用在Swift中的: 结构体(struct)、枚举(enum) 扩展(extension)、协议(protocol)中修饰方法 Swift结构体(struct)、枚举(enum) 中均可以包含类方法和实例方法 Swift官方是不建议在结构体(struct)、枚举(enum)的普通方法里修改属性变量。 但是,在方法前面添加 mutating 关键字之后就可以在对应的 mutating代理方法内修改。 示例1: protocol Per

iOS开发笔记 8766

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析

本文详细解析了将YOLOv8模型部署到Hi3516CV610开发板的全流程。内容涵盖从Ubuntu环境搭建、模型获取与验证,到关键的PyTorch模型转换为ONNX格式,并利用海思工具链量化生成板端可执行的.wk文件。最后,指导开发者编写板端C程序,完成视频流处理、NNIE推理及结果后处理,并提供了部署调试与性能优化的实用技巧。

weixin_29215815的博客 268

Swift方法mutating关键字的本质

mutating关键字本质是包装了inout关键字,加上mutating关键字后参数值会变成地址传递。 类对象是指针,传递的本身就是地址值,所以 mutating关键字对类是透明的,加不加效果都一样。

lcl130的专栏 1309

LabVIEW实战:基于DAQmx的实时正弦波生成、采集与波形图动态显示

本文详细介绍了如何使用LabVIEW和DAQmx驱动实现实时正弦波的生成、采集与动态显示。通过USB-6008数据采集卡,结合队列缓冲机制和动态波形图显示技术,构建了一个完整的信号处理系统。文章包含硬件连接、软件配置、任务设置及常见问题排查,适合LabVIEW初学者和硬件控制开发者参考。

weixin_30872337的博客 124

振动能量采集技术:从原理到实战,破解物联网供电难题

能量采集技术旨在捕获环境中的废弃能量(如机械振动、热能、光能)并将其转化为电能,其核心原理在于通过压电、电磁、静电或摩擦电等物理效应实现能量形式的转换。这项技术的核心价值在于为物联网(IoT)中难以布线或更换电池的分布式传感器节点、植入式医疗设备等提供近乎永续的电力解决方案,从而解决物联网部署的“最后一米供电”瓶颈。其应用场景广泛覆盖工业预测性维护、结构健康监测、可穿戴设备及消费电子等领域。本文聚焦于振动能量采集这一细分方向,深入剖析了压电式、电磁式、电容式及摩擦纳米发电机(TENG)等主流技术路线的实战考

weixin_42660494的博客 566

swift之mutating关键字的使用

在Swift中,structure和enumeration是值类型(value type) class是引用类型(reference type)。 默认情况下,实例方法中是不可以修改值类型的属性,使用mutating后可修改属性的值 例如: 在结构体中,有一个实例方法,如果直接修改属性的值,编译器会报错。 可以使用mutating修饰 struct Point { var x...

jacob_ios的博客 6771

Transformers在自动驾驶领域的应用(High-level like in scene)

Transformers uses global attention mechanism to capture long-range interaction information. Two core modules in Transformers are Self-Attention and Cross-Attention, which defined asAttn(Q,K,V)=softmax(QK⊤dk)VSelfAttn(X)=Attn(WQX,WKX,WVX)CrossAttn(X,Y)=Attn

qq_39337332的博客 1775

swift 类方法和实例方法 ,mutating

【代码】swift 类方法和实例方法 ,mutating。

github_36850997的博客 1220

XILINX RFSoC全面解析(五)—— Zynq UItrascale+ RF Data Converter IP核详解

这期我们来看看RFSoC独有的IP核——Zynq UItrascale+ RF Data Converter如何使用。 我使用的VIVADO版本是2018.3,这个是最低版本,要开发RFSoC,VIVADO版本必须不低于2018.3。 另外电脑配置也需要很高,64位,8核@3.4GHz CPU,16GB内存,固态硬盘基本就是低配,跑起来很勉强。建议有条件的朋友使用工作站或者服务器。 首先在VIVADO中新建一个工程,因为我使用的是xilinx官方的开发板,所以可以直接设定选board就行。 在I

1万+

tsmc12: m0po max length问题(H384.M0_PO.L.1)

手动调整可以挪cell,制造上下两个row相对的至少一个site的空间,通过插普通filler来解决,这里需要注意的是,tsmc12有via0的规则,需要让via0落在via0 grid上。在pt eco之后会有一些m0po max length问题出现,大部分问题都可以通过替换decap来解决,少部分由于局部density过高,需要手动调整。更多学习内容请关注「拾陆楼」知识星球。#ICC2中替换decap的参考脚本。

m0_61544122的博客 790

swift之mutating关键字

在swift中,包含三种类型(type): structure,enumeration,class 其中structure和enumeration是值类型(value type),class是引用类型(reference type) 但是与objective-c不同的是,structure和enumeration也可以拥有方法(method),其中方法可以为实例方法(instance

Benson的专栏 1万+

大数据与宠物:健康监测数据分析

随着全球宠物市场规模的快速增长(2023年全球宠物产业规模已达3500亿美元),宠物健康管理需求呈现指数级上升。传统宠物医疗依赖定期体检和症状观察,存在滞后性和主观性缺陷。本文聚焦如何通过物联网(IoT)设备采集宠物生理数据(体温、心率、活动量等),利用大数据分析技术构建实时健康监测系统,实现宠物健康状态的动态评估、异常预警和疾病预测。研究范围涵盖数据采集技术、数据预处理方法、机器学习模型构建及实际应用场景落地。背景介绍:明确研究目的、目标读者及核心术语核心概念与联系。

2502_91592937的博客 1067

《Learn X in Y minutes》Swift 速成指南全解读:基于 learnxinyminutes-docs 的 Swift 核心语法实战

> 本文以 learnxinyminutes-docs 仓库中的土耳其语 Swift 教程 [tr/swift.md](https://link.gitcode.com/i/8acbc351ba98fe852c3a0fcdd3e60c68) 为主线,结合仓库根目录的英文原版 [swift.md](https://link.gitcode.com/i/db6e5bdad4af112db3e153d8

gitblog_00699的博客 1127

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Swift 非拷贝(Noncopyable)结构体与枚举完全指南:基于 SE-0390 的唯一所有权类型实战解析

Swift 5.9 通过 [SE-0390](https://link.gitcode.com/i/4896795bf19318d0f0f8396086269aa5) 引入了**非拷贝类型(noncopyable types)**,也称"move-only"类型:这类结构体与枚举的实例拥有唯一所有权,任何时刻只能存在一份,无法被隐式复制。本文以该提案为骨架,系统讲解 `~Copyable` 约束抑

gitblog_00893的博客 159

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《Swift 编程语言》中文版精读:Swift 枚举的语法、关联值与原始值全面指南

枚举是 Swift 中一种将一组相关值组织为共同类型的一等(first-class)类型,它同时支持关联值(associated values)与原始值(raw values),并能以类型安全的方式配合 `switch`、模式匹配、协议遵循等机制工作。本文以《Swift 编程语言》中文版(SwiftGG 维护的开源仓库)中的 [Enumerations.md](https://link.gitco

gitblog_00033的博客 460

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Swift 编程语言中文版精读:结构体与类的定义、值语义与引用语义全解析

结构体(`struct`)和类(`class`)是 Swift 程序代码的基石——它们是可以封装数据、提供功能的自定义模型类型。本文以《The Swift Programming Language(中文版)》语言指南中的「结构体和类」章节([TSPL.docc/LanguageGuide/ClassesAndStructures.md](https://link.gitcode.com/i/7e5

gitblog_00622的博客 678

SE-0158 Swift Package Manager 清单 API 重设计:Package.swift 从 Swift 3 到 Swift 4 的演进全解析

SE-0158(Package Manager Manifest API Redesign)是 Swift 4 时代 Swift Package Manager(SwiftPM)对 `Package.swift` 清单 API 的一次系统性重塑,其核心目标是让清单 API 全面符合 Swift API 设计指南(API Design Guidelines),为 PackageDescription

gitblog_00854的博客 595

Swift系列十六 - 协议

协议在Swift中极其重要,可以说任何项目开发都会用到协议。 一、协议(Protocol)的定义 协议可以用来定义方法、属性、下标的声明,协议可以被枚举、结构体、类遵守(多个协议之间用逗号隔开)。 示例代码: // 定义协议 protocol Drawable { var x: Int { get set } var y: Int { get } func draw() subscript(index: Int) -> Int { get set } } protoc

1024星球 829

《Swift 编程语言》中文版 Swift 导览:从 Hello World 到并发与泛型的完整入门路线

> 本文基于中文版 Apple 官方《Swift 编程语言》(TSPL)仓库中的 [Swift 导览](https://link.gitcode.com/i/3107dc362a0078555c2808da754442ff) 展开,逐节复现并深化原文档的全部代码示例与练习,同时结合仓库内[语言指南](https://link.gitcode.com/i/ac8df9085404f43c14637f

gitblog_00782的博客 217

Swift基础语法学习总结二

1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名...

ad4576690的专栏 194

Eureka 表单框架完全指南:用 Swift 优雅构建 iOS 声明式表单、自定义 Row 与验证体系

Eureka 是一个由 XMARTLABS 用纯 Swift 编写的 iOS 表单生成框架,本质上是经典库 XLForm 的 Swift 重构版本,通过 DSL 式自定义操作符(`+++`、`<<<`、`+=`)让开发者像搭积木一样组合 `Section` 与 `Row`,即可生成完整可交互的表单界面。本文以仓库 [Documentation/README_CN.md](https://link.

gitblog_01171的博客 888

Swift Evolution SE-0006 深度解读:API 设计指南在标准库中的全面落地与 Swift 3 大规模 API 重命名

SE-0006 是 Swift 3 时代最具影响力的演进提案之一:它把同期制定的 [Swift API Design Guidelines](https://link.gitcode.com/i/0abf3647e058f1a6b58c6516b52bc994)(SE-0023)系统性地应用到 Swift 标准库,带来了一场波及几乎所有 Swift 开发者日常代码的"API 大改名"——`sort

gitblog_00088的博客 866

Swift 扩展(Extensions)完全指南:为现有类型添加功能与追溯建模实践

扩展(Extensions)是 Swift 语言中用于为现有类、结构体、枚举或协议类型添加新功能的核心机制,也是《Swift 编程语言》中文版(TSPL)语言指南中的关键章节。本指南以 [TSPL.docc/LanguageGuide/Extensions.md](https://link.gitcode.com/i/3e2d792cbe6b4fa3ae1c5474194fc6c9) 为骨架,结合

gitblog_00870的博客 1108

SE-0359 深度解读:用 `@const` 在 Swift 中声明编译期可知的常量值(Build-Time Constant Values)

`@const` 是 Swift 语言中用于声明"值在编译期可知"的声明级属性:被标记的属性与函数参数必须由编译期可求值的常量初始化,否则编译器直接报错,且该属性除参与名字重整(name mangling)外没有任何运行时开销。本文以 Swift Evolution 提案 [proposals/0359-build-time-constant-values.md](https://link.git

gitblog_00463的博客 948

Swift 语言速成指南:从语法基础到面向对象与泛型实战(Learn X in Y minutes 系列)

**Swift** 是 Apple 于 2014 年 WWDC 大会推出的编程语言,面向苹果全系操作系统开发,旨在与 Objective-C 共存的同时提供更强的代码健壮性。本指南以 learnxinyminutes-docs 仓库根目录下的 [swift.md](https://link.gitcode.com/i/9d9012d64b00c37b8fb490c3874602fb) 为骨架,将这

gitblog_00455的博客 163
上一篇: Swift_类和结构体(Class、struct、两个类引用类型判断 === 等价....)
下一篇: iOS8自定义输入法教程:如何创建第三方输入法
Gz_Jason_chen
博客等级 码龄11年 49粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值