美文网首页
函数静态变量---你真正get到它的意义了吗???

函数静态变量---你真正get到它的意义了吗???

作者: 水水兔 | 来源:发表于2019-11-22 15:19 被阅读0次

业务场景

场景:今天开发一个业务方法,每次上传图片时,都会去调用此方法,在业务方法里需要判断,上次是否有从服务器获取过业务编码列表,如果有,则直接从列表中拿出相关的业务编码,如果没,则从服务器获取,获取后并保存下来,以免下次用时,重复获取。
需求:
1、此业务编码列表生命周期为程序的生命周期,即app生命结束时,此列表会清理掉,所以不能持久化本地。
2、整个项目工程没有一个数据中心来存放这种全局的缓存数据(是不是觉得不可思议?但事实就是这样)。
3、有些人会想,你把这个列表做为当前界面的属性存储起来不行???不行,因为还有另一个功能模块也需要调用此方法,也要用到此列表。

一开始完全没想到函数静态变量上,一直在工程里找有没有这样一个数据中心(单例,程序生命周期中只初始化一次),但工程的数据中心存储的都是些持久化的数据,这个业务目前只在两个子功能用到,如果不用到这两子功能,有可能这数据永远不会存在和用到,所以放在全局的数据中心似乎也不太合适,要是以后都这么添加,数据中心的数据会越来越乱,只能另谋它法。

函数静态变量

以前只是知道,函数内部的静态变量,在第一次函数时才被初始化,但是没去了解它的生命周期。
静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。
函数静态变量完全能满足以上需求,在方法内部定义一个静态列表变量变行了。

今天之后,突然发现之前对函数静态变量用的这么肤浅,不要再把业务需求量不大的数据放数据中心了,这样用试试

相关文章

  • 函数静态变量---你真正get到它的意义了吗???

    业务场景 场景:今天开发一个业务方法,每次上传图片时,都会去调用此方法,在业务方法里需要判断,上次是否有从服务器获...

  • modern c++(2)-局部静态变量线程安全

    局部静态变量 局部静态变量就是定义在函数内部的静态变量。它的初始化发生在该函数第一次被调用执行到局部静态变量定义语...

  • 函数中的变量

    1.自动变量:变量在执行到它的块尾时就超出了作用域。 2.静态变量 :静态变量只能在包括在包含其声明的函数中可见,...

  • C++——静态成员函数与静态成员变量

    静态成员函数与静态成员变量使用static进行定义。 静态成员函数和静态成员变量其实就是全局函数与全局变量。 静态...

  • C++——静态成员函数与静态成员变量

    静态成员函数与静态成员变量使用static进行定义。 静态成员函数和静态成员变量其实就是全局函数与全局变量。 静态...

  • iOS block

    block 介绍 带有自动变量(局部变量)的匿名函数。 函数多次调用中传值得变量有: 静态变量 静态全局变量s 全...

  • 2.Blocks

    带有自动变量值的匿名函数 五种变量:自动变量(局部变量)、函数参数、局部静态变量、全局静态变量、全局变量 其中能够...

  • C++ static const operator

    static 修饰为静态函数只能调用静态函数和变量const 修饰为常量函数只能调用常量函数和变量 常引用作为函数...

  • static有什么用途

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 static 属于静态变量,使用它...

  • C++静态成员与友元

    静态成员 静态变量的初始化(如何定义) static int getnum()//静态成员函数 静态成员函数只能操...

网友评论

      本文标题:函数静态变量---你真正get到它的意义了吗???

      本文链接:https://www.haomeiwen.com/subject/hcqqwctx.html