objective-c 之 static

AI上推荐 之 AutoInt模型(Transformer开始玩特征交互) 1. 写在前面 这段时间做优化模型的事情,正好和特征交互有关系,这个也是推荐系统里面一直探索的一个方向,从浅层模型的FM, FFM, HOFM, FwFM到深层模型的DNN, PNN, NFM, AFM, DeepFM, DCN, xDeepFM, FiBiNet等,而这次正好借着这次机会, 多看一些有关于特征交叉方向的模型paper, 把一些新的模型或者较为前沿的思想融入进来。 上一篇的FiBinet模型就是在特征交互上一个非常有意思的探索, 通过SENET动态选择有用的交互特征, 然后再用一个双线性交互 阅读详情

一.在一个方法内部使用static 声明变量

经常被使用在实现单例或者某种数据结构在第一次使用前被自动初始化。

例如下面这段code

// static variable declared in a function
NSArray *getDaysOfTheWeek() {
  static NSArray *daysOfTheWeek = nil;
  if ( ! daysOfTheWeek) {
    daysOfTheWeek = [[NSArray alloc] initWithObjects:@"Sunday",
                     @"Monday", @"Tuesday", @"Wednesday", 
                     @"Thursday", @"Friday", @"Saturday", nil];
  }
  return daysOfTheWeek;
}
static daysOftheWeek 实际上是一个静态全局变量,该方法被多次调用时,都会返回相同的内存块,不会因为方法的调用结束,而被销毁,下一次再重新分配...

并且,daysOfTheWeek变量只在函数可见,外部不可见

如果这样定义

// same function using a static global variable instead
static NSArray *daysOfTheWeek = nil;

NSArray *getDaysOfTheWeek() {
  if ( ! daysOfTheWeek) {
    daysOfTheWeek = [[NSArray alloc] initWithObjects:@"Sunday",
                     @"Monday", @"Tuesday", @"Wednesday", 
                     @"Thursday", @"Friday", @"Saturday", nil];
  }
  return daysOfTheWeek;
}

则该变量daysOfTheWeek是对.m文件全局可见

对比一下:

int countCharInString(char c, char const *s) {
  int count = 0; // plain old local variable
  do {
    if (*s == c) ++count;
  } while (*s++);
  return count;
  // after we return, count ceases to exist
}

这里的 count 就会在每一次方法被调用时,开辟内存去存储,然后方法调用完毕后而被清除。


二.使用static关键字,降全局变量只在.m或.h中可见

默认情况下,全局变量是可外部调用或者public的,在每一个.m(或.h)被编译后,linker会检查是否有命名冲突等,如果你只想让一个变量在文件中全局,则可以使用static来避免命名冲突,既隐藏这个变量。


三.Objective-C 中不允许声明 static 属性。但是,我们有一些变通的方法:在实现文件中使用全局变量(也可以添加 static 关键字来控制可见性,类似 C 语言)。这样,类就可以通过方法访问到,而这样的全局变量的初始化可以在类的 initialize 方法中完成。




1. 迈进 SAP UI5 开发世界的第一步 - Hello World SAP UI5 是一个用于开发企业级 Web 应用的前端框架,基于 HTML 和 JavaScript. 作为教程的第一步,我们需要了解最基础的 HTML 知识。 请大家在电脑上任意新建一个文件夹,将其命名,比如我取的名称为 Walkthrough. 进入 Walkthrough 文件夹,再新建一个文件夹名叫 01,代表本教程的第一个步骤。 进入 01 文件夹,新建一个 webapp 文件夹。这个名称是 web 应用约定俗成所使用的,大家都倾向于用这个名称,当然你要是想用其他名称也没有问题。...... 阅读详情

相关推荐

02-基于ART-PI开发板创建USB CDC 虚拟串口设备

本例在ART-PI开发板上,基于RT-Thread 5.0,5虚拟了一个USB32 CDC串口设备。

arm_fan的专栏 1886

obj-c的类的一些概要 静态方法与静态属性

我只是菜鸟,请勿喷我。 这次想跟大家讲一吓什么时静态方法与静态属性。 在oc中,是没有静态类这个说法。 1、oc中只有静态方法与静态属性。它们是不需要实例化便能调用的东西, 2、在系统编译后会占用一定内存,直到程序结束。 3、静态方法不能调用实例方法与属性,不能用self。 应该差...

chufengruan8170的博客 253

1104全部报表版本号-银监会报表

G4B_Ⅲ(a)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第一档)》G4B_Ⅲ(b)X1《与非中央交易对手的证券融资交易对手信用风险违约风险计算表(权重法)(第一档)》G4B_Ⅲ(a1)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第二档)》Ⅲ(a)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第二档)》Ⅲ(a1)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第一档)》

数字化老司机 6289

Object的属性和静态方法

Object.assign(target,source1,source2,…) 用于将所有源对象source的可枚举性的值合并到目标对象target上,返回目标对象。此方法只拷贝源对象的自身属性,不拷贝继承的属性 注意:source属性和target属性相同,target属性值会被替换source的属性值 const target = { x : 0, y : 1 }; const source = { x : 1, z .

qq_40291247的博客 441

STM32H745xI双核芯片SMPS/LDO配置误区:从复位失败到精准排查的实战复盘

本文详细分析了STM32H745xI双核芯片在SMPS/LDO配置中的常见误区,特别是复位失败问题的排查过程。通过对比参考板与故障板的波形数据,揭示了电感选型不当导致的电源稳定性问题,并提供了硬件设计检查清单和调试技巧,帮助开发者避免类似陷阱。

weixin_42531588的博客 265

永磁同步电机矢量控制——电流内环前馈解耦策略

在采用永磁同步电机矢量控制时,ud和uq的指令值存在耦合项。需要对其进行解耦,目前,常用的解耦设计方法有前馈解耦、偏差解耦以及内模控制,本文主要分享电流内环前馈解耦控制策略。

a12312341ll的博客 8691

Objective-C语法之static关键字的那些事儿(六)

Objective-C语法之static关键字的那些事儿 学习过Java 或者 C 语言的朋友应该很清楚static关键字吧?在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍可以在其他类中任意修改这个变量的数值。 在Objective-C 的...

mmdev 226

用Logisim搞定华科计组实验:单总线CPU设计从微程序到硬布线的保姆级通关攻略

本文详细介绍了如何使用Logisim完成华中科技大学计算机组成原理实验中的单总线CPU设计,涵盖从微程序控制器到硬布线控制器的完整实现过程。通过MIPS指令译码器设计、微程序控制原理、状态机实现等关键步骤的保姆级教程,帮助学生掌握CPU设计的核心技能,并提供Educoder平台提交与调试的实用技巧。

weixin_30897233的博客 476

Objective-C — static关键字用法详解

static修饰的变量或者函数作用域变窄,这样有助于模块化开发static修饰的变量生命周期更长,只是初始化一次,保存一份内存。

j15087159186的博客 946

二维矩形件排样算法之最低水平线算法实现

最低水平线算法的简单实现(Python) 1、二维矩形排样算法众多,最早的有BL算法、下台阶算法、最低水平线算法等,其中最低水平线算法及其优化算法应用较多,是与智能优化算法(遗传算法、模拟退火算法等)结合的最多的算法,本文利用python对最低水平线算法做了实现...

峰爸的博客 1万+

使用Clumsy和Process Explorer定位软件高CPU占用问题

使用弱网模拟工具Clumsy和进程查看工具Process Explorer定位软件高CPU占用问题。

dvlinker的技术专栏 5706

Objective-C - 动态方法、静态属性实例

设计”狗”类/* 设计一个”狗“类 1> 属性 * 颜色 * 速度(单位是m/s) * 性别 * 体重(单位是kg) 2> 行为 * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重 * 吠(叫):输出所有的属性 * 跑:每跑一次,体重减少0.5kg,输出速度和跑完后的体重 * 比较颜色:跟别的狗比较颜色,如果一样,返回YES,不一样,返回NO * 比较速度:跟别的狗比较速度

陆讯 3151

Spring AI提示词模板应用

本文介绍了使用SpringAI提示词模板的配置方法,主要步骤包括:1)在JDK17和SpringBoot3.4.4环境下引入spring-ai-alibaba1.0.0.2依赖;2)配置application.yml文件;3)创建测试控制器类处理提示词模板(.st文件);4)通过模板变量动态生成AI回复内容。演示了如何通过@RequestParam设置默认参数,实现无需前端传参即可测试AI回复功能,最终完成了一个SpringAI提示词模板的应用Demo。

wjianwei666的专栏 198

objective-c static变量的使用总结

在java中,我们经常使用的是单例模式,这些设计模式在ios开发中也比较常用,最近也在考虑使用在ios开发中使用单例模式 在objective-c中,需要在.m文件里面定义个static变量来表示全局

dearbaba_8520的博客 285

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Objective-C 语法之 static 关键字

摘要: 学习过Java 或者 C 语言的朋友应该很清楚static关键字吧?在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍可以在其他类中 ...

李布衣 659

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

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

Objective-C中的static用法

Objective-C中的static变量表示的是类变量,仅初始化并存储一次,该类的所有实例共享该变量。 一般都定义在.m文件中,函数体之中或函数体之外。定义在函数体之中的static变量(局部静态变量),其作用域就是所在的函数体,即仅在所在函数体内可用。定义在函数体之外的static变量(全局静态变量),可以被所在类的所有方法访问。但是这两种方式定义的static变量都不可被其他类直接访问。

好脑瓜不如烂笔头,每天积累一点! 891

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Objective-C语法之static关键字的那些事儿

Objective-C语法之static关键字的那些事儿 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/408        学习过Java 或者 C 语言的朋友应该很清楚

taylor的专栏 1259

Objective-C中static关键字用法

Objective-C中,在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值。例如下面的一句Objective-C语句: static int hitCount = 0; 声明整数hitCount是一个static静态变量。和其他常见局部变量不同,Objective-C中的static静态变量的初始值为0,所以前面显示的初始化是多余的。此外,它们只在程序开始执行时初...

weixin_34123613的博客 219

Objective-c中static的理解

与java不同,OC中的static代表在编译的时候进行初始化,规定变量的作用域和存储方式,也就是说写在哪里,那么作用域就在哪里。比如在cellForRowAtIndexPath里面定义的identifier只能在这个方法里面使用,而定义在类外部的变量可以在整个类中使用,此类的外部不能访问

fel835的专栏 665

objective-c中的static

在方法之外定义的变量不仅是全局变量,还是外部变量.但是很多场合,我们只需要定义为全局变量,并不是外部变量.也就是说希望定义的全局变量只在特定文件中是全局的,这个变量也只有在特定的类中的方法能访问,再也没有其他方法需要访问这个变量了. 这就引出了static. 被static修饰过的变量,在本文件中可以访问,在别的文件则不能. 在Objective-C中的static并...

weixin_30868855的博客 135

Objective-C语法之static关键字

学习过Java 或者 C 语言的朋友应该很清楚static关键字吧?在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍可以在其他类中任意修改这个变量的数值。                  在Objective-C 的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的

LVXIANGAN的专栏 1103
上一篇: Charles使用
下一篇: 编译器功能
安子就是安子
博客等级 码龄17年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值