首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么使用公共变量?

使用公共变量的原因主要有以下几点:

  1. 代码重用:公共变量可以在多个地方使用,这样可以避免重复编写相同的代码。例如,如果多个函数或类需要使用相同的配置信息,可以将这些信息存储在公共变量中,这样可以避免在每个函数或类中重复定义相同的配置信息。
  2. 易于维护:公共变量可以在一个地方定义,然后在多个地方使用,这样可以避免在多个地方重复定义相同的变量,这样可以减少出错的可能性,并且可以更容易地进行维护和更新。
  3. 提高代码可读性:公共变量可以在多个地方使用,这样可以减少代码的复杂性,并且可以提高代码的可读性和可维护性。例如,如果多个函数或类需要使用相同的配置信息,可以将这些信息存储在公共变量中,这样可以更容易地理解代码的结构和逻辑。
  4. 提高代码的复用性:公共变量可以在多个地方使用,这样可以增加代码的复用性。例如,如果多个函数或类需要使用相同的配置信息,可以将这些信息存储在公共变量中,这样可以更容易地在其他项目中重复使用这些代码。

总之,使用公共变量可以提高代码的可读性、可维护性和复用性,并且可以减少出错的可能性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

慎用公共变量

前言 在开发过程中,避免不了会使用公共变量,记录共享对象状态、数据最简单的方式就是创建创建公共变量; 当业务逻辑变多,还采用这种思想就会变得危险,代码逻辑变得不清晰,慢慢就有一种代码坏味道。...具体总结如下: 1、过多逻辑分支,不够清晰,公共变量不利于系统维护和项目拓展; 2、安全性收到威胁,过多地方共享变量,变量的写入和读取在多线程下是危险的; 3、业务逻辑交叉过多时,很难保证数据-逻辑的一致性...出现问题,解决问题,Objective-C针对上述问题,提供了一个解决方案:即使用关联对象(Associated Object); 我们可以把关联对象想象成一个Objective-C对象(如字典),这个对象通过给定的...key连接到类的一个实例上; 不过由于使用的是C接口,所以key是一个void指针(const void *)。...这种情况下,先前的关联对象会被妥善地处理掉,并且新的对象会使用它的内存; 3、移除关联对象: objc_removeAssociatedObjects(anObject); 或者使用objc_setAssociatedObject

58120

慎用公共变量~~

在开发过程中,避免不了会使用公共变量,记录共享对象状态、数据最简单的方式就是创建创建公共变量。 当业务逻辑变多,还采用这种思想就会变得危险,代码逻辑变得不清晰,慢慢就有一种代码坏味道。...具体总结为一下几点: 过多逻辑分支,不够清晰,公共变量不利于系统维护和项目拓展; 安全性收到威胁,过多地方共享变量,变量的写入和读取在多线程下是危险的; 业务逻辑交叉过多时,很难保证数据-逻辑的一致性;...不过由于使用的是C接口,所以key是一个void指针(const void *)。我们还需要指定一个内存管理策略,以告诉Runtime如何管理这个对象的内存。...另外,如果我们使用同一个key来关联另外一个对象时,也会自动释放之前关联的对象,这种情况下,先前的关联对象会被妥善地处理掉,并且新的对象会使用它的内存。...3、移除关联对象: objc_removeAssociatedObjects(anObject); 或者使用objc_setAssociatedObject函数将key指定的关联对象设置为nil。

78740
  • Python - 面向对象(三)公共变量,受保护变量,私有变量

    前言 在Python的类里面,所有属性和方法默认都是公共的;但Python也可以设置受保护、私有类型的变量or方法 受保护类型的变量、方法 一般称为:protected变量 #!..._test() 执行结果 子类实例属性: 子类的受保护实例变量 子类类属性: 受保护变量 实例属性: 子类的受保护实例变量 类属性: 受保护变量 子类实例对象调用类属性 子类的受保护实例变量 类方法中类属性..._protect 总的来说,和公共变量没有什么特别大的区别 私有类型的变量、方法 #!..._privates__test() 执行方法 实例对象 - 类内部调用私有变量: 私有变量 类对象 - 类内部调用私有变量: 私有变量 实例对象 - 外部调用私有变量 私有变量 类方法 - 类对象 -...类内部调用私有变量: 私有变量 类对象 - 外部调用私有变量 私有变量 私有方法 知识点 在变量和方法前加两个下划线 即可变成private类型的变量or方法 __ 子类无法访问父类的私有变量、方法

    1.6K20

    KMP再思考:为什么要用最长公共前后缀,为什么要用公共前后缀

    2.因为需要保证比较位置之前的字符串都一致了,如果不用公共前后缀,则可能导致比较位置之前的字符串不一致。...选择公共前缀是必定的,因为如果想要在待比较串中找出模式串,那么一定要和模式串的开头匹配,也就是和前缀匹配。 但是选择的不是公共后缀的话,也就是结尾不贴近比较指针的话,就会导致上面的问题。...3.就算使用最长串,是否还是会有遗漏的情况存在呢? 那么我们可以假设使用最长串,看看有没有遗漏的情况发生。 假如在过程中发生了匹配。...但是根据我们 公共前后缀的定义,应该出现如下的最长公共前后缀,所以这种匹配如果存在,只能说明我们之前找的不是最长公共前后缀,比公共前后缀短。 但是当前情况下,并不成立,因为两者根本不相等。

    1.3K20

    为什么阿里禁止 boolean 类型变量使用 is 开头?

    01 前言 平时工作中大家经常使用到 boolean 以及 Boolean 类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用 isXXX 来命名呢?...04 题外话 工作中使用基本类型的数据好还是包装类好 咱们举个例子,一个计算盈利的系统,其盈利比例有正有负,若使用了基本类型 bouble 定义了数据,当 RPC 调用时,若出现了问题,本来应该返回错误的...,但是由于使用了基本类型,返回了 0.0,系统会认为没有任何问题,今年收支平衡,而不会发现其实是出现了错误。...若使用了包装数据类型 Double,当 RPC 调用失败时,会返回 null,这样直接就能看到出现问题了,而不会因为默认值的问题影响判断。...其实阿里 java 开发手册中对于这个也有强制规定: 图片 因此,这里建议大家 POJO 中使用包装数据类型,局部变量使用基本数据类型。

    1.8K10

    为什么你不该用免费公共WiFi?

    你该使用免费公共WiFi吗? 答案是否定的。 风险 科技越发达,普通人对其了解就越少。曾经攒收音机是许多人都会的手艺,现在你攒个手机出来看看?...你可以把饭馆里面都在使用免费公共WiFi上网的人,想象成一个小区里面的居民。快递小哥来给这个小区送包裹。他会怎么送?当然是根据包裹上面的地址去按门铃或敲门了。 ?...一种是干脆不使用免费公共WiFi。有人会告诉你不用这么高度紧张。你尽可以用免费WiFi聊天、视频,但是使用支付宝等敏感网站或应用的时候用手机流量。这简直就是开玩笑。...这种方法的优点在于你可以放心大胆使用免费公共WiFi了。缺点主要有以下3点: 你的访问速度可能会变慢。访问本地的网站本来速度很高,但是你的虚拟专用网服务器可能在其他国家,数据需要兜一个大圈子。...讨论 你平时爱用免费公共WiFi吗?你了解其中的风险吗?知道风险后,你还会接着用吗?为什么?欢迎留言,我们一起交流讨论。 ----

    1.3K20

    10、less的引用及公共变量的抽离

    官网:http://lesscss.org/usage/ 二、项目中使用less 1、less的安装 打开命名行,安装less和less-loader就可以了: $ cnpm install less...install 2、使用less 怎么使用,大概就这样,不需要引入什么的,直接用,定义下lang属性就行 我们新建一个home.vue...home.vue 三、less与公共变量 一般在我们项目中,需要把所有统一的色调、样式提出出来作为公共变量使用,比如这里,假设红色是我们项目的基调色,很多页面都要用到,所以我们定义一下这个背景色。...1、我们在styles下面新建一个variables.less文件,用于存放less公共变量,然后定义一下全局背景色 ?...浏览器 那么,以后再项目中就可以把所有的页面公共的变量抽离出来使用了。 参考学习 http://lesscss.org/usage/

    2.6K10

    为什么阿里强制 boolean 类型变量不能使用 is 开头?

    来源:blog.csdn.net/belongtocode/article/details/100635246 背景 平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型...,后者是包装类,为什么不推荐使用isXXX来命名呢?...工作中使用基本类型的数据好还是包装类好 咱们举个例子,一个计算盈利的系统,其盈利比例有正有负,若使用了基本类型bouble定义了数据,当RPC调用时,若出现了问题,本来应该返回错误的,但是由于使用了基本类型...若使用了包装数据类型Double,当RPC调用失败时,会返回null,这样直接就能看到出现问题了,而不会因为默认值的问题影响判断。...其实阿里java开发手册中对于这个也有强制规定: 因此,这里建议大家POJO中使用包装数据类型,局部变量使用基本数据类型。

    91620

    ​2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?

    2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么? 福哥答案2021-03-06: 这是面试中被问到的。实力有限,真正的答案还不知道。...所以公共变量非协程安全,赋值操作是否原子跟变量类型及机器架构有关(指令集)。...适量减少线程切换才正确 成都-似杏而酢 14:49:42 暴力枚举咯 成都-似杏而酢 14:49:53 这才多少点多少边嘛 葡萄❤柠檬 16:06:34 适量调大是有用的 葡萄❤柠檬 16:06:47 为什么...只是不能调得太大 成都-似杏而酢 16:21:55 SSD 的并发不挺好呢么 1711680493.github.io 16:28:09 今天的每日一题是我过的最快的一次 题078_ Tnze 10:27:04 公共变量不是协程安全的...,赋值操作不是原子的 Tnze 10:27:45 这是由于线代多核cpu中变量可能会储存在不同核心各自的cache上 Tnze 10:29:05 需要原子操作一定要用sync包 题029_ 【新手】SQL

    1.3K10

    为什么编程里习惯使用 i、j、k 等作为循环变量?

    早期教材中的示例都是以 i、k、j 作为循环变量,后来这样使用成为了一种习惯。 但这种习惯是如何形成的呢?...在 1957 年诞生的 Fortran 编程中,有一个「I—N 规则」,以字母 I,J,K,L,M,N 六个字母开头的变量,如无另外说明均为整型变量,以其它字母开头的变量则为实型变量。...实型变量在这里狭隘理解就是小数,包括指数形式的小数。 Fortran 更多是一种教学语言,后来诞生的 B 语言、C 语言都借鉴了 i、k、j 的命名规则,久而久之成为了习惯。...Fortran 诞生于 1957 年,比 C 语言早了 10 年,很难想象在远古编程语言中,竟然就有了对变量类型的支持。...JS、Python 这样的脚本语言没有变量类型,并不是它们低级,而是在它们的语言哲学里,没有类型更加简洁方便。

    1.1K20

    头文件为什么不能定义变量

    在头文件里使用 #ifndef #define #endif 可以避免重复定义,可是如果在其中定义变量向下面这样 #ifndef _TEST_H #define _TEST_H int a; #endif...这是因为编译器需要经过预处理、编译、汇编、连接才可以生成可执行程序,在编译器执行链接这一步骤时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。...但是如果需要使用的全局变量较多的话,放在主文件前面显得比较臃肿,如果想使用这些全局变量有不想使用大量的extern的话,可以单独建一个.c文件,将需要的变量放入其中,然后建一个头文件(.h文件)在所有的变量声明前加上...然后在需要调用这些变量的文件中声明调用这个.h文件就可以了。这样就可以达到目的了。

    1.1K20

    【小家java】匿名内部类为什么只能使用外部final的变量

    1、概述 各位都知道,匿名内部类在使用的时候需要使用外部的变量,该变量必须被final修饰,否则编译报错。实际使用中,有时候确实还给我们造成了不少麻烦,可大家可曾想过这是为什么吗?...至于为什么一定得是final的呢?这个就得从两个方面阐述原因: final修饰的变量有什么特别? 为什么需要final修饰的这个特点?...用final修饰的成员变量表示常量,存在内存中的常量区(常量区位于堆区)(jvm内存结构),放在常量区里面,所以效率上相对来说会高那么一点。 为什么匿名内部类用的变量必须final呢?...(当然这要求成员变量也是静态的) 第二种情况是在构造方法中进行初始化。...3、使用场景 匿名内部类的使用也是非常非常多的,所以理解为什么,能够更好的使用内部类,从而可以更优美的去规划自己的代码结构 4、最后 任何一向规定、规范都不是凭空制定而且也不可能随便下定义的。

    92340

    为什么要做java环境变量配置

    今天就来谈有关为什么要做java环境变量配置的问题。...1、学习java不一定要有原因 学习java是一个漫长的过程,想要速成的结果也是有可能的,但是每一件事情不一定要知道他的原因,像java学习中的有些部分不明白时就按照操作往下做就行了,不一定要知道是为什么...当然java环境变量配置也是一个刚入门的设置,还是要学会的。 2、为什么要做java环境变量配置 java环境变量配置一般情况下会分PATH、CLASSPATH、JAVA_HOME环境变量的配置。...首先PATH环境变量的作用是指定命令的搜索路径,在执行一项命令时,需要在PATH变量的路径中找到相应的命令程序,需要把一个目录下的程序安装在另一个目录的PATH变量后,在此目录下运用java工具了。...JAVA_HOME环境变量是jdk的安装目录,一些软件本身就是通过JAVA_HOME变量才能找到和安装的。 其实学习java有时想不清楚的问题,比如java环境变量等问题。

    28620

    Go系列:为什么这个变量不为nil

    前言今天在写代码时,发现一个结构体使用json.Marshal后值为“null”,最后定位到这个函数func toString(obj any) string {if obj == nil {return...null分析经过分析,原因是:interface{} 的值不是任意类型,而是 interface{} 类型接口包含两个字的大小,类似于 (type, value)所以:当定一个一个interface{}变量...var x interface{}此时,{type=空,value=空},此时x == nil当将一个类型赋值到这个变量var s []stringx = s那么至少type就会有值了,此时 x !...anytime.Sleep(1 * time.Second) var s []stringx = stime.Sleep(1 * time.Second)_ = x}对sleep处加断点运行第一个断点处,x变量为...x = {interface{}}nil运行到第二个断点处,x变量为x = {interface{}|[]string} []string(nil)可以看到当复制一个零值的字符串切片时,此时x的类型已经改变如何修改两个方法

    6700

    为什么Linux驱动应避免全局变量,而选择使用私有结构体?

    你可以把全局变量视为一个“公共资源”,就像在办公室里,大家可以随意调整中央空调的温度。 如果没有协调机制,A喜欢冷,B喜欢热,每个人都在随意改动,最终导致谁都不满意。...通过将变量封装在结构体中并设置为私有数据,每个设备实例都有自己独立的变量,从而避免多个设备或进程共享同一个全局变量所导致的竞态问题。 这是典型的“数据局部化”,使变量和设备逻辑独立,保持数据隔离。...如果使用全局变量,所有设备将共享这些变量,这在多设备环境下会造成严重问题,因为无法区分不同设备的状态。...通过将数据封装到结构体中并使用私有数据,驱动的不同部分变得更加模块化,代码更易于阅读和理解,也更容易扩展。 在处理某个设备时,你只需关注该设备的私有数据,而不必担心其他部分的全局变量如何影响程序。...4、增强安全性 全局变量可能被意外或恶意修改,尤其在复杂的驱动程序中,多个模块之间共享全局变量会增加安全隐患。 使用私有数据可以保证每个模块只能访问自己的数据,从而减少出错或被破坏的可能性。

    6300

    公共模块管理之 Git Submodule 使用总结

    公共模块管理之 Git Submodule 使用总结 Write By CS逍遥剑仙 我的主页: csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email...公共模块管理:npm or git-submodule?...在企业级项目开发中,对于较复杂的项目,不可避免地会引用一些公共基础库,或是将代码拆解成公共模块和多个子模块进行管理,主项目工程中的子模块需要对公共模块有依赖关系,却又不必关心公共模块内部的开发流程细节,...其实在 git submodule 之前,我们也许都曾有过相似的经历:开发一个新项目,需要用到团队的公共库,但是又不想把公共代码提交到自己的项目时,会考虑在当前工作目录下,将公共模块文件夹加入到 .gitignore...但这样做的弊端是,使用该项目的人需要有一个先验知识(一般写在 README.md 说明文件中):需要在当前目录下放置一份某版本的公共模块代码。

    5.7K180
    领券