swift枚举(一)

发布时间:2022-11-23 开发语言 IOS底层原理 SWIFT IOS

OC中的枚举

   typedef NS_ENUM(NSUInteger, IFLEnum) {
       A, B, C
   }

A,B, C分别默认代表0, 1, 2

关键字enum 声明枚举

而swift中的枚举则更加灵活,并且不需要给枚举中的每一个成员都提供值

   enum IFLEnum {
       case one
       case two
       case three
   }
   
   let mEnum: IFLEnum = .two
   print(MemoryLayout<IFLEnum>.size)
   print(mEnum)

结果

1 - IFLEnum 结构所占用的内存大小为1字节

two - mEnum枚举变量的 打印结果

枚举成员提供原始类型
   enum IFLEnum: String {
       case one
       case two
       case three
   }
   
   let mEnum: IFLEnum = .two
   print(MemoryLayout<IFLEnum>.size)
   print(mEnum)
   print(mEnum.rawValue)

结果

1 - IFLEnum结构占据内存大小依然为1字节, 与原始类型无关

two

two - mEnum.rawValue 即原始值

   enum IFLEnum: String {
       case one
       case two = "第2个"
       case three
   }
   
   let mEnum: IFLEnum = .two
   print(MemoryLayout<IFLEnum>.size)
   print(mEnum)
   print(mEnum.rawValue)

结果

1

two

第2个 - mEnum.rawValue 原始值变为 赋值的原始类型一个值 “第2个”

并且 原始类型修饰的枚举类型 不需要给每一个枚举成员都赋值

只有 原始类型修饰的枚举 才有 rawValue

隐式rawValue分配, 建立在Swift类型推断机制上
   enum IFLEnum: Int {
       case one
       case two
       case three = 10
       case four
   }

   print(MemoryLayout<IFLEnum>.size)
   let mEnum: IFLEnum = .one
   let mEnum1: IFLEnum = .two
   let mEnum2: IFLEnum = .three
   let mEnum3: IFLEnum = .four
   print(mEnum.rawValue)
   print(mEnum1.rawValue)
   print(mEnum2.rawValue)
   print(mEnum3.rawValue)

结果

1

0

1

10

11

成员three 赋值为10,后面的成员 推断为 11,12…, 但不影响前面的成员,依然从0,1…

但需要注意的是 赋值成员的 值 不能与前面的成员相冲突,比如前面两个成员 原始值为 0,1,

three就不能赋值为 0, 1(前面的成员没做赋值操作的前提下)

关联值&模式匹配
   enum IFLEnum {
       case circle(Double)
       case 
       case three = 10
       case four
   }

   print(MemoryLayout<IFLEnum>.size)
   let mEnum: IFLEnum = .circle(3.0)
   print(mEnum)

结果

25 - IFLEnum 结构所占内存 变为了25字节,暂且不表,后面会解释

circle(3.0)

   enum IFLEnum {
        case circle(Double)
	    case rectangle(Int, Int)
	    case triangle(Int, Int, Int)
	    case none
   }

    print(MemoryLayout<IFLEnum>.size)
    let mEnum: IFLEnum = .circle(3.0)
    let mEnum1: IFLEnum = .triangle(3, 4, 5)
	print(mEnum)
	print(mEnum1)
	switch mEnum {
	case .circle(let radius):
	    print("圆半径: \(radius)")
	case .rectangle(let length, let width):
	    print("长方形 长:\(length), 宽:\(width)")
	case .triangle(let width1, let width2, let width3):
	    print("三角形 第一条边: \(width1), 第二条边: \(width2), 
	    第三条边: \(width3)")
	default:
	    print("nothing")
	}
	switch mEnum1 {
	case .circle(let radius):
	    print("圆半径: \(radius)")
	case .rectangle(let length, let width):
	    print("长方形 长:\(length), 宽:\(width)")
	case .triangle(let width1, let width2, let width3):
	    print("三角形 第一条边: \(width1), 第二条边: \(width2), 
	    第三条边: \(width3)")
	default:
	    print("nothing")
	}

结果

25

circle(3.0)

triangle(3, 4, 5)

圆半径: 3.0

三角形 第一条边: 3, 第二条边: 4, 第三条边: 5

模式匹配另一种写法

	switch mEnum1 {
	case let .circle(radius):
	    print("圆半径: \(radius)")
	case let .rectangle(length, width):
	    print("长方形 长:\(length), 宽:\(width)")
	case let .triangle(width1, width2, width3):
	    print("三角形 第一条边: \(width1), 第二条边: \(width2), 
	    第三条边: \(width3)")
	default:
	    print("nothing")
	}
枚举结构的大小

区分几种不同的情况

No-payload enums

	enum Week {
	    case Monday
	    case Tuesday
	    case Wednesday
	    case Thursday
	    case Friday
	    case Saturday
	    case Sunday
	}
	
	print(MemoryLayout<Week>.size)
	print(MemoryLayout<Week>.stride)

结果

1

1

在swift中进行枚举内存布局的时候,一直都是尝试使用最少的空间来存储

对于当前case的数量来说,UInt8能够标识256种case

也就意味着如果一个默认枚举类型没有关联值的case 少于256,都是1字节大小

在这里插入图片描述

控制台打印可以看到

3个枚举变量 mWeek1, mWeek2, mWeek3 存储的内容分别是 01 04 06, 与上所说布局一致

swift枚举(二)

更多相关推荐


石家庄python少儿培训

发布时间:2021-11-29 开发语言 PYTHON培训 PYTHON
国务院印发《新一代人工智能发展规划》指出,举全国之力,在2030年一定要抢占人工智能全球制高点,将人工智能上升到国家战略。并从小学教育,中学科目,到大学院校,通通逐步新增人工智能课程,建设全国人才梯队。其中,编程教育当然是人工智能课程核心的部分。顶层设计框架搭建完成,也明确提出编程教育的发展规划。又进一步提高了编程教育在基础教育中地位,加快将编程纳入应试教育科目的速度。放眼世界,全球有超24个国家...

python石家庄培训

发布时间:2021-12-22 人工智能 开发语言 PYTHON
  2017年6月2日至4日,在北京理工大学举办了为期三天的Python爬虫技术与机器学习实战研讨会,北京火热的天气并没有影响大家学习的热情,为期三天的培训让大家收获满满。现场有来自北京、天津、石家庄、成都、重庆、青岛、广州、上海等市共计45名学员。他们来自中国人保、宜信、广视索福瑞、国家发改委、北京市农林科学院、中国中医科学院、清华大学、北京理工大学、南开大学、中山大学、上海交通大学、北京交通大...

06-类与对象基础与命名空间初步

发布时间:2022-11-21 HTTP 11_PHP(初学版) JAVA 开发语言
1、类与对象基本知识&lt;?phpnamespace_0815;/***1.属性重载:__get(),__set()*2.方法重载:__call(name,$args),__callStatic(name,$args)*///面向对象的三大特征:封装,重载,继承classUser{//private:私有,封装//privateint$age=20;//一般不会一个一个声明私有变量,可以直接声明...

Flutter 实战-快速实现音视频通话应用

本文将引导你如何使用ZEGOFlutterSDK快速轻松的构建一个跨平台音视频聊天应用,大大降低开发成本,适合想要快速完成多端共用音视频项目的开发者;1准备环境在开始集成ZEGOExpressSDK前,请确保开发环境满足以下要求:Flutter1.12或以上版本。iOS7.0或以上版本,且支持音视频的iOS设备或模拟器(推荐使用真机)。Android4.4或以上版本,且支持音视频的Android设...

Windows Java开发环境搭建

发布时间:2022-11-10 ECLIPSE JAVA 开发语言
1.下载安装配置JDK8打开 https://developer.oracle.com/找到Java8下载位置,点击下载链接,下载JDK8下载后如下图所示,双击安装一直选择选择下一步 2.下载安装Eclipse点击官网下载 Eclipse下载后就是一个压缩包,只需解压即可找到eclipse.exe3.配置Java环境变量如果仅仅是简单使用Java可以不用配置环境变量,但是在服务器开发时候就必须配置...

用eclipse中打开Java项目

发布时间:2022-11-03 ECLIPSE JAVA 开发语言 JAVA开发小问题
用eclipse中打开Java项目问题:不知道如何用eclipse打开已存在的Java项目。1、在空白位置或者File处import项目,如图:2、选择已存在的项目,如图:3、选择对应的文件夹然后可以发现项目然后打开的项目,如图:4、最后项目就成功打开了如图:...

使用matplotlib绘制定制化饼图(图例比例标签支持中文等)

发布时间:2022-11-07 可视化 PYTHON 开发语言 MATPLOTLIB
写这篇博客源于博友的提问1.效果图效果图如下:2.原理autopct=‘%0.1f%%’自动添加百分比显示,格式化保留1位小数labeldistance设置各扇形标签(图例)与圆心的距离(labeldistance)为1.1shadow=True添加饼图的阴影效果startangle设置饼图的初始摆放角度为90度pctdistance设置百分比标签与圆心的距离0.7legend(loc=‘uppe...

PHP利用ueditor实现上传图片添加水印

发布时间:2022-10-15 开发语言 PHP 服务器
在上传图片时,有时需要添加水印。如果每个都用PS添加的话,会有些麻烦。本文将为大家介绍PHP如何利用ueditor实现上传图片添加水印,感兴趣的可以了解一下博客在上传图片的时候,我希望能打上我博客链接的水印,掘金,csdn都是这么干的,这事我得学习。平时的图片上传还好说,在文章编辑的时候,使用ueditor上传图片加水印需要修改ueditor部分PHP的源码,我这里大概记录一下。首先打开php文件...

循环结构程序设计基本知识

本文就三种循环语句进行简单描述,将从语句形式、语句分析和例子三方面说明各循环结构。一、while循环语句1.语句形式while(表达式){循环体语句S}2.语句分析该循环语句为“当型循环”,即当满足xx时,进行xx循环。其中,表达式为循环进行的条件。循环流程:判断while后表达式,结果为是(逻辑结果非0),执行循环体语句S,进行下一次判断。如果判断while后表达式结果为否(逻辑结果为0),则结...

C++之老张开车去东北

发布时间:2022-11-25 C++ 开发语言
实现司机类,司机类的开车方法依赖于抽象类“车“(有一个虚方法GetDiscription,返回对车的描述)的引用和类“Area”(有一个虚方法GetDiscription,发那会对地方的描述)的引用,实现小汽车类、火车类、自行车类、马车类,这些类都继承自抽象类“车”,并实现了GetDiscription方法。在主函数中创建司机类对象,创建上面的各种车类的对象,创建描述为“东北”的area对象。使得...

Python是个什么鬼?为什么那么多人都要学它

“不是只有程序员才要学编程?!”认真查瞭一下招聘网站,发现它其实早已变成一项全民的基本技能瞭。连国企都纷纷要求大家学Python!国家也在大力扶持编程的发展,各大高校也相继开设专业课程。甚至连中小学课堂中也有瞭Python的身影。随着全民都学习Python,可以预见:“21世纪,不会Python等于文盲。”它的角色類似于现在Office,成瞭进入职场的第一项必备技能。1Python作为大数據时代的...

攻防世界-elrond32

发布时间:2022-10-26 逆向 CTF 开发语言 C++
 1.下载附件,exeinfo查壳,无壳 2.32位IDA分析,F5反汇编,分析函数int__cdeclmain(inta1,char**a2){if(a1&gt;1&amp;&amp;sub_8048414(a2[1],0))//满足条件,即可{puts("Accessgranted");//成功输出sub_8048538(a2[1]);}else{puts("Accessdenied");}r...

Drupal6 hook_mail实现发送HTML邮件

发布时间:2012-02-01 JAVASE ANDROID HTML IPAD HOOK JAVASCRIPT IOS
======================================================注:本文源代码点此下载======================================================刷新评论列表刷新页面返回页首发表评论昵称:[登录][注册]主页:邮箱:(仅博主可见)验证码:看不清。    换一个评论内容:记住我的昵称和主页--&gt;登录注册...

四层项目构建之后台项目开发

发布时间:2022-11-17 JAVA 开发语言
一.实体层User.java Pager.java@Data@AllArgsConstructor@NoArgsConstructorpublicclassPager{privateObjectdata;//用于响应的数据privateintpageTotal;//总条数}二.创建UserMapper.xml&lt;?xmlversion="1.0"encoding="UTF-8"?&gt;&lt...

Python学习主要发展方向|Python开发学习

Python在近几年的发展是非常火爆的,作为一门将近20年的计算机编程语言,可谓是前途非常广泛的。当然,Python语言的大火与人工智能这门科学具有密不可分的关系,因此很多人可能疑惑,学习Python只能做人工智能吗?当然不是了,Python是一门适合零基础学习的语言,也是初学者的首要选择,那么我们一起来看看Python语言学习路线以及发展空间吧。  1、Linux学习:Linux主要学习的就是一...

pygame实现时钟

发布时间:2022-11-13 PYGAME 开发语言 PYTHON
pygame实现的逻辑1.时钟的刻度通过python的math函数cos,sin来获取,x,y,在通过pygame的字体对象进行书写2.时钟怎么动,通过pygame的帧率实现动态的加载3.秒,分在12点时会异常丢失原因是因为i的取值在(1,61)之间,而获取系统时间的时候,只有(0,59)应该在i=60的时候进行标识,从而在秒,分的时候可以识别出来代码importmathimportrandomi...

要学量化交易,先学编程,python基本语法与变量

摘要python是什么python的基础语法变量与赋值Python保留字符打印print全局变量基本数据类型-数字与字符串算术运算查看数据类型type数据类型-列表与字典自测与自学前文讲解了量化交易中策略运行的基本框架以及实现方法,其中虽然给出一个简单策略的完整代码,但只是初步认识,想完全看懂并自己写需要掌握python这门编程语言。一般常见的python教程都是针对程序员的,所以很多内容在做量化...

CentOS7编译安装gromacs-2022.3+GPU+ONEAPI

发布时间:2022-11-08 ONEAPI 开发语言 PYTHON
CentOS7编译安装gromacs-2022.3+GPU+ONEAPI基本信息操作系统:CentOS7.9FFTW:3.3.10CMAKE:3.23.5MPI:intel的ONEAPI-2022CUDA:根据自己机子显卡对应版本下载,这里使用11.8版本GCC:8.3.1PYTHON:3.6.7所有软件百度网盘下载链接链接:https://pan.baidu.com/s/1CV_M1ToP7y8...

了解汇编语言

发布时间:2022-11-11 开发语言
汇编的特点1、面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2、保持了机器语言的优点,具有直接和简捷的特点。3、可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5、经常与高级语言配合使用,应用十分广泛。汇编语言包括:汇编指令伪指令汇编符号1.汇编指令是汇编语言的核心,决定了汇编语言的特性...

[C语言]文件操作详细笔记

发布时间:2022-10-13 学习 开发语言 C语言
最近事情真的好多呀,但我喜欢这种充实又忙碌的感觉,这给我一种踏踏实实的安全感,这段时间我学习了关于文件操作的各种知识,现在总结一下,分享给大家!1.使用文件可以让我们将数据存放到电脑的硬盘里,从而让数据能够保存下来文件的分类:1.程序文件:源程序文件,目标文件,可执行程序2.数据文件:文件的名称:一个文件必须要有一个唯一的标识,这个标识就是文件名文件名包含三部分:文件路径,文件名主干,文件后缀比如...

【数据结构】初识数据结构03---堆---第一节

发布时间:2022-11-20 数据结构 算法 C语言 学习 开发语言
树一、树的相关概念:什么是树?树是一种非线性的数据结构,他是由n个有限节点组成的一个具有层次关系的集合为什么叫树?因为他看起来很像一颗倒着的树,如图:树的基本概念:节点:组成树的基本单位,如图中A,B,C,D,E,F就是树的节点节点的度:一个节点含有子树的个数就是度,如图中A的度是2,C的度是1,F的度是0树的度:一棵树中最大节点的度被称为树的度叶节点:  度为0的节点又被成为叶节点,如图中D、E...

【Qt】控件探幽——QLineEdit

发布时间:2022-11-18 QT C++ QT初级 UI 学习 开发语言
注1:本系列文章使用的Qt版本为Qt6.3.1注2:本系列文章常规情况下不会直接贴出源码供复制,都以图片形式展示。所有代码,自己动手写一写,记忆更深刻。QLineEdit探幽列举部分常用的QLineEdit相关的API及示例。1、设置数据/获取数据2、只读(readOnly)/控件不可用(setEnabled(false))的区别注:setEnabled并不是QLineEdit的专属API,而是其...

计算机毕业设计(附源码)python众筹平台

发布时间:2022-11-09 DJANGO 开发语言 PYTHON
项目运行环境配置:Pychram社区版+python3.7.7+Mysql5.7+HBuilderX+listpip+Navicat11+Django+nodejs。项目技术:django+python+Vue等等组成,B/S模式+pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。...

【附源码】Python计算机毕业设计手机维修服务系统

发布时间:2022-11-14 DJANGO 开发语言 PYTHON
项目运行环境配置:Pychram社区版+python3.7.7+Mysql5.7+HBuilderX+listpip+Navicat11+Django+nodejs。项目技术:django+python+Vue等等组成,B/S模式+pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。...

java-net-php-python-jspm出版社的图文管理系统计算机毕业设计程序

发布时间:2022-11-21 开发语言 JAVA PHP
java-net-php-python-jspm出版社的图文管理系统计算机毕业设计程序java-net-php-python-jspm出版社的图文管理系统计算机毕业设计程序本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7...

Win32系统编程 线程控制(Suspendthread ResumeThread WaiteForSingleObject WaitForMultipleObjects)

发布时间:2022-08-20 WIN32系统编程 WINDOWS 开发语言
前提摘要前面几章已经提过线程的概念,这里直接介绍线程控制常用的代码简单明了会介绍的函数SuspendthreadResumeThreadWaiteForSingleObjectWaitForMultipleObjects将线程挂起:Suspendthread()函数让线程恢复:ResumeThread()函数代码:注释写的很清楚简单明了#include&lt;windows.h&gt;#inclu...

C++函数模板的使用

发布时间:2022-10-26 C++ 开发语言
     假如要实现多个函数用来返回两个数的最大值,要求能支持char类型、int类型、double下面方法是基本的实现#include&lt;iostream&gt;usingnamespacestd;intMax(inta,intb){ returna&gt;b?a:b;}charMax(chara,charb){ returna&gt;b?a:b;}floatMax(floata,float...

手把手教你用Python网络爬虫获取壁纸图片

前言想要电脑换个壁纸时都特别苦恼,因为百度搜到那些壁纸也就是分辨率达到了壁纸的水准。可是里面图片的质量嘛,实在是不忍直视…。而有些4K高清的壁纸大多是有版权的,这就使我们想要获取高清的图片,变得非常的困难。wallhaven网站是无版权的4K壁纸,而且主题丰富(创意、摄影、人物、动漫、绘画、视觉),今天教大家如何去批量的去下载wallhaven4K原图。项目目标获取对应的4K壁纸,并批量下载保存在...

当yield在递归中时踩得坑

发布时间:2022-11-03 开发语言 PYTHON
起因是我要一遍历个文件夹,而文件夹里又有文件夹,所以就采用了递归,因为之后要处理的文件数量较多,就想使用yield。但是却怎么都无法读出递归中内容。经过查找最终找到了一个神奇的yieldfrom。代码如下最后即可输出所有结果importosfromosimportpathpath_data=r'C:\Users\wykdz\Desktop\音乐分类\thm\audio'defscaner_file...

统计单词个数(字符串)

发布时间:2022-10-21 C++ JAVA 开发语言
题目描述给出一个长度不超过 200的由小写英文字母组成的字母串(该字串以每行 20 个字母的方式输入,且保证每行一定为 20 个)。要求将此字母串分成 k 份,且每份中包含的单词个数加起来总数最大。每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串 this 中可包含 this 和 is,选用 this 之后就不能包含 th。单词在给出的一个不超过 6 个单词的字典...

perl下map和grep的用法

发布时间:2022-11-21 开发语言 PERL
map和grep都是列表处理函数,它们将一个列表转换成另一个列表。它们的语法如下:mapEXPRESSION,LIST;mapBLOCK,LIST;grepEXPRESSION,LIST;grepBLOCK,LIST;map的目的是逐个转换列表中的元素,并产生一个新的列表作为结果,而grep是通过表达式或者程序块被计算为True或False值来返回原始列表的一个子集列表。下面举例说明grep的有法...

那些下载不了的视频,Python只用1行代码就能直接下载

前言现在有很多网站都并不支持直接下载的,例如我们常去的B站里面的视频,在页面是没有下载按钮的,还有的视频需要我们下载客户端才能下载…虽然这并不能拦住多少人,有些聪明的小伙伴就会去下载一些第三方软件去下载,比如说硕鼠等等,但有的软件总是会弹出很多广告就很烦,毕竟它们是要吃饭的。「对于跟计算机打交道的程序员来说,软件我都懒得下。」(文末送读者福利)应该有很多人用过「you-get」这招功夫,今天就来教...

js习题 双色球问题

发布时间:2022-11-10 ES6 JAVASCRIPT 前端 开发语言
&lt;script&gt;//点击按钮后生成双色球数字显示在div叫做app中//双色球有红球跟蓝球红球是1-33中的6个不重复的数字篮球是1-13中的一个数字//封装随机生成6个随机数functionmakeRandom(min,max,hasEnd=true){//hasend默认参数,returnMath.floor(Math.random()*(max-min+(hasEnd?1:0))...

java8语法

发布时间:2022-11-21 JAVA 开发语言
Lambda表达式1、Lambda语法2、Lambda使用使用前:Comparator&lt;Apple&gt;byWeight=newComparator&lt;Apple&gt;(){publicintcompare(Applea1,Applea2){ returna1.getWeight().compareTo(a2.getWeight());}}使用后:Comparator&lt;Appl...

网课查题公众号制作步骤

网课查题公众号制作步骤本平台优点:多题库查题、独立后台、响应速度快、全网平台可查、功能最全!1.想要给自己的公众号获得查题接口,只需要两步!2.题库:查题校园题库:查题校园题库后台(点击跳转)题库后台:3.注册自己的公众号!(有自己的公众号请跳过看下面)注册:如何搭建公众号?(点击跳转)4.授权公众号5.文章:1、贝弗里奇将()社会保险作为提供收入保障、消除贫困的一项基本社会政策内容。A、社会保险...

2014年整理的IOS开发常用库

发布时间:2015-04-27 IOS
如何用 Facebook的图形API上传视频:http://developers.facebook.com/blog/post/532/钥匙扣保存数据封装:https://github.com/carlbrown/PDKeychainBindingsController对焦功能的实现:http://www.clingmarks.com/?p=612自定义圆角开关按件:https://github....

python类

发布时间:2022-11-21 开发语言 PYTHON
提取人类和猫咪的共同特征:哺乳类,作为父类。然后人类和猫咪都可以继承这个类。classMammal:#构造函数,第一个参数必须为self,把属性的值绑定在实例对象上,#相当于this指针def__init__(self,name,sex):#对象属性self.name=nameself.sex=sexself.num_eyes=2#对象方法defbreathe(self):print(self.n...

python 培训图片

发布时间:2021-12-11 JAVA 开发语言 PYTHON
Java更适合企业级系统开发方向,Python适合数据分析类方向,而且Python在自动化运维和自动化测试方向有很多贡献。尽管如此,Java依旧是市场需求量最大的语言。哪个语言更香呢?原来我总会说,不管什么语言都是工具。后来经过很多人提问,我想了想,小白可能就是更在乎哪个更好的问题。从下面几个维度给大家说说。一、入门的难易度很多人说Java会比Python入门难,但其实我觉得对于一个完全没有接触过...

Python爬取网站数据

发布时间:2022-11-21 数据分析 爬虫 PYTHON 开发语言 PYCHARM
接了一个任务,内容是从网上抓取特定属性的数据。正好python练练手。编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了。问题要从文字的编码讲起。原本的英文编码只有0~255,刚好是8位1个字节。为了表示各种不同的语言,自然要进行扩充。中文的话有GB系列。可能还听说过Unicode和UTF-8,那么,它们之间是什么关系呢?Unicode是一种编码方案,又称万国码...

免杀-绕过内存扫描

发布时间:2022-11-16 C++ 免杀 开发语言
免杀-绕过内存扫描复现参考文章:https://xz.aliyun.com/t/9399起因是在群里看到大佬们在聊这个,就上网搜了一份教程,我本地没有卡巴斯基,所以随便复现一下,做个记录,当个笔记。​内存扫描是耗时耗力不管是卡巴还是其他杀软,一般来说都是扫描进程中一些高危的区域比如带有可执行属性的内存区域,既然他扫描带有X(可执行)属性的内存区域那么只要我们去除X属性,那自然就不会被扫也就不会被发...

js原型链

发布时间:2022-11-16 笔记 JAVASCRIPT 开发语言 原型模式
原型链是js内容中比较重要的一部分,原型链指函数对象(函数)与原型对象(原型)以及实例化对象之间的关联,通过prototype属性、__proto__属性以及constructor属性来实现上述三类对象之间的链接,有效的解决了重复代码的使用,提高了性能。在我的理解上,我将原型链划分为三个部分,分别为函数对象,原型对象,以及实例化对象。每个函数对象都存在一个原型对象,而实例化对象则是通过构造函数创建...

js中的闭包和继承

发布时间:2022-11-14 JAVASCRIPT ECMASCRIPT 开发语言
一.闭包什么是闭包:    闭包就是可以访问外层函数作用域中变量的函数.    闭包的特点:    1.会将闭包所访问的变量永远保留在计算机内存中,可能会产生内存泄漏.    2.闭包可以实现变量的私有化.内存泄漏:闭包中的变量会存储在计算机内存中,且不释放,会导致计算机内存搁置,这个就叫内存泄漏。&lt;button&gt;按钮1&lt;/button&gt;&lt;button&gt;按钮2&...

第十篇、Jlable标签

发布时间:2022-08-21 JAVA GUI编程 开发语言
前言上一篇我们共同学习了JDialog弹窗本篇我们将来学习Jlable标签中的图标。一、Jlable标签本篇我们将来学习Jlabel标签中的自定义图标Icon和图片图标ImageIcon。二、代码示例1.图标Icon代码如下(示例):IconDemo类publicclassIconDemoextendsJFrameimplementsIcon{privateintwidth;privateinth...

iOS之APP上架

发布时间:2022-11-21 IPHONE 移动端产品 IPAD IOS
 前几天在忙着上线,尽管之前已经上线过一次,但由于本身比较菜,还是状况百出.好在今天终于成功提交,因此来写写心得. 接下来我讲一讲关于我版本更新过程中的一些问题. BundleIdentifier:     检查一下现在的id是够跟上一个版本的一致,如果不一致,那么可能你需要重新下载证书之类的.然后进行打包上传至appStore.(一般建议保持一致.我就是因为之前版本是外包公司做的,然后自己开发的...

CMakeLists.txt添加自定义库的路径

发布时间:2022-11-08 LINUX 开发语言
问题描述作者将一个库放入自定义的路径下面,现设其为/home/username/testdir/libtest.so,通过将test加入target_link_libraries后,如下SET(ARG_DEPENDENCIEStest)target_link_libraries(XXXXXX${ARG_DEPENDENCIES})编译通过,但是运行时报错:errorwhileloadingshar...