首页
学习
活动
专区
工具
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

55320

慎用公共变量~~

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

75540

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

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

1.5K20

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

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

1.2K20

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

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

1.4K10

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

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

1.2K20

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.5K10

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

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

76920

​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 这样的脚本语言没有变量类型,并不是它们低级,而是在它们的语言哲学里,没有类型更加简洁方便。

90820

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

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

1K20

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

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

83140

为什么要做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环境变量等问题。

25720

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

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

4.8K180

TensorFlow 使用变量共享

当模型复杂的时候共享变量会无比复杂。...官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共享同一过滤器变量,一共有4个变量:conv1_weights, conv1_biases...通常的做法是将这些变量设置为全局变量。但是存在的问题是打破封装性,这些变量必须文档化被其他代码文件引用,一旦代码变化,调用方也可能需要变化。还有一种保证封装性的方式是将模型封装成类。...return conv_relu(relu1, [5, 5, 32, 32], [32]) 最后在image_filters这个作用域重复使用第一张图片输入时创建的变量,调用函数reuse_variables...tf.get_variable("v", [1]) w1 = tf.get_variable("w", [1]) assert v1 is v assert w1 is w 不管作用域如何嵌套,当使用

1.2K10
领券