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

我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗

echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数的列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----

18020

用EA生成C#代码,能否为属性自动生成Properties

原木纯品(292***737) 19:30:35 用EA生成C#代码,能否为属性自动生成Properties,UML里有相应概念吗 潘加宇(3504847) 20:20:49 在属性(attribute...潘加宇(3504847) 20:28:49 然后生成的代码中就有相应的get set操作了 Property就是操作的一种,是实现语言如C#中getter setter的简化表示。...类应该暴露的是可以"卖"给其他类的服务,而不是get、set,除非它就是这个类要卖的服务。...原木纯品(292***737) 7:38:38 谢谢老师的回复,我看了一些网上的C#教学视频,直接定义Property了,是不是一种趋势?...属性和操作的分离,背后的道理是卖和做的分离,操作是一个类卖给其他类的服务,属性是类所拥有的资源,两者不是一一对应也不应该一一对应,所以应该尽量避免getter和setter,除非它本身就是能卖的服务。

40330
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    尝试Java,从入门到Kotlin(上)

    在C#中,我们可以有这样的Json反序列化方法: T parse(string jsonStr) 这个方法将jsonStr反序列化为类型T的一个对象。这种写法看起来十分自然。...Getter/Setter 在面向对象哲学中,字段属于实现细节,应该设为private使它隐藏在类的内部。但是在实际中,有很多字段需要直接访问和修改。...因此,应该将字段的访问封装的方法中,即使只是很简单的访问和设置,也应该实现getter方法和setter方法。...C#和Python有property特性支持快速定义和调用getter方法和setter方法。Ruby则依靠函数调用可以省略括号的特性,使getter方法看起来很像直接访问字段。...遵循这个规范很重要,以为在很多常用库,比如Json序列化,会以getter方法作为字段存在的依据。 为了减少开发工作量,可以使用IDE自动生成getter方法和setter方法。

    16730

    浅谈python,c,java,优劣,语言高低与效率相反的不变规律

    由此可以看出,java不管在GNU还是商业领域,都是应用最广的语言。C主要用于构建系统底层。c++和java用于构建中间应用层。...如果你的应用程序或者平台,要被Python编程语言开发者使用,那么他们只会感谢你,没有在他们的工作中,添加使用XML的负担。 4、尽量不要使用Getter和setter。...因此尽量不要去写getter和setter,而是把它们内置在“属性”里。除非你需要比一个简单访问更复杂的功能(一般情况下并不多见),除此之外,都请尽量不要去写getter和setter。...在Java中,你必须使用getter和setter,因为公共字段不允许你以后改变想法时,再去使用getter和setter。...而在Python中,这样做是很傻的,因为你完全能够以一个普通特性开始,并可以在任何时候改变你的想法,而不用影响到这个类的任何客户。所以在Python中,尽量不要去使用Getter和setter。

    3.2K90

    TW洞见〡getter和setter的那些事

    但是,当你写了很多程序,写过很多getter和setter,尤其是有些类方法,只有getter和setter时,总会有一天,你会疑惑,我到底为什么要这么干? Why private field?...要解释为什么需要getter和setter,先要知道为什么字段应该是private的。 在汇编语言时,数据都是公开的。所谓公开,是指几乎任何指令,都可以作用在任意的数据块上。...不论设计阶段做的多么详尽,在开发过程中,接口都不可避免的会发生变化。一旦接口变化,所有与它相关的代码都要修改。所以,面向对象编程提出,尽量保证接口稳定,而内部逻辑可以改变,以达到最小化变化的目的。...Why getter & setter, again? 然而,却并不是所有语言都是这样的。比如和Java最像的C#,虽然也建议将字段设置为private,但是却可以不用getter和setter。...因为在C#和Python中,property的访问方式和直接将数据字段暴露出来的访问方式完全一样,所以在写代码时可以考虑先将数据暴露出来,避免过多的getter和setter,减少冗余代码。

    89860

    vue数据双向绑定原理-observer

    通过 Object.defineProperty() 来劫持各个属性的 setter , getter ,在数据变动时发布消息给订阅者,触发相应的监听回调。...假如写过 C# winform 自定义控件的, 我想更好理解之后的逻辑和实现原理 在 C# 中 当控件的某个属性发生了变化, 就刷新视图 priveate int a ; public int A...enumerable 当且仅当该属性的 enumerable 为 true 时,该属性才能够出现在对象的枚举属性中。默认为 false 。...数据描述符同时具有以下可选键值: value 该属性对应的值。可以是任何有效的 JavaScript 值(数值,对象,函数等)。默认为 undefined 。...: 实现 Observer 将需要 observe 的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter 和 getter 这样的话,给这个对象的某个值赋值,就会触发 setter

    74820

    TS与JS中的Getters和Setter究竟有什么用

    在本文中,我们讨论了getter 和 setter 在现代 Web 开发中的实用性。它们有用吗?什么时候使用它们是有意义的?...不幸的是,该主题的普遍共识是 “yes”。我认为这是因为大多数情况下,你所做的前端编程都不会要求提供 getter 和 setter 这样的操作。...尽管我不同意 getter 和 setter 完全是一个反模式。但它们在几种情况下能带来更多的实用性。 它们是什么? getter 和 setter 是另一种提供对象属性访问的方法。...防止贫血模式 你还记得贫血模式(译者注:一种反模式)是什么吗?尽早发现贫血模式的方法之一是,假如你的域实体的每个属性都有getter和setter(即:set 对域特定语言没有意义的操作)暴露的话。...getter/setter 对用户是不可见的,但是在幕后,它们使 Vue 能够在访问或修改属性时执行依赖关系跟踪和更改通知。

    2.1K40

    【MyEclipse】——MyEclipse设置注释模板

    在MyEclipse中同样可以自动生成注释。        ...修改时,@后面的内容为注释中需要原原本本显示的内容,${}中的内容都是系统定义的函数,用于显示类型名称——${type_name},显示当前日期${date},显示当前时间——${time},自定义填写内容...在VisualStudio中,如果是C#语言,在类或方法上部输入  ///  ;如果是VB.NET,输入  ''' 。...就可以为类或方法生成已经设置好的注释模板。        在MyEclipse中,在需要被注释的代码区(如类或方法)上部输入 /** ,回车,就可以为类或方法生成已经设置好的注释模板。...为setter、getter生成注释        当一个类中需要生成多个setter和getter方法时,为了方便,可以在生成setter和getter的窗口选中Generate method comments

    1.4K30

    Scala中的语言特性是如何实现的?

    Scala中的语言特性是如何实现的(1) Scala可以编译为Java bytecode和CIL,从而在JVM和CLI之上运行。...Scala有很多在Java和C#的世界中显得陌生的语言特性,本文将分析这些语言特性是如何实现的。...编译器为v1生成了getter和setter,为v2则只有getter,因为v2作为immutable的字段是不可以被重新赋值的。 有趣的是方法中的局部变量都是普通的变量,没有被final修饰。...结果还是有意外收获,我在反编译后的代码中发现了三个有趣的问题: 在Scala中被声明为val的v4为什么在反编译的Java中不是final的呢?...在Scala中被声明为val的v2为什么在反编译的C#中不是readonly的呢? 为什么反编译出来的C#代码中的实例级公开方法都是标有override的呢? 为什么呢?为什么呢?为什么呢?

    1K70

    KVO详解(二)

    自定义KVO 上篇文章中我介绍了KVO的简单用法以及KVO的实现细节,为了加深对KVO的理解,我决定从头到尾介绍一下如何自定义KVO。...而且通过查看堆栈信息我们也可以看到,最终还会调到LVPerson的setName,这说明在中间子类的setter中会调用父类的setter。 基于上面的分析,我就写出了下面的?...在OC中,函数式编程可以通过Block来体现,因此,我们可以通过Block的形式将KVO的添加观察者和响应变化合二为一。 响应变化的Block的定义放在KVO信息模型中: ?...因此,基于上面的这些分析,我们应该可以猜测KVO观察自动移除的实际和地方了: 在中间子类创建的时候复写dealloc方法,然后在复写的dealloc中做移除观察者相关的操作(最重要的一步就是将isa重新指回来...虽然我在上面列出了自定义KVO的所有代码,但是实际上这个自定义KVO还是非常简陋的,甚至可以说是漏洞百出的,不过架子是对的,整个关于KVO自定义的思路是没有任何问题的。

    72231

    C# 8 新增小功能

    尽管 C# 8 应该会在今年发布,并且 C# 8.x 和 9 的路线图也开始形成,但是,微软正在继续审查下一个版本的特性。...b : c; 根据目标类型switch表达式提议,在每种情况下都允许编译器使用语句(A a1)的左侧来决定右侧(b ??c)应该返回的类型。该功能还可以用于返回语句(return b ??...过时的属性 与 Visual Basic 不同,C# 无法把单个 getter 和 setter 标记为过时。...这和Pure 属性不同,只要只读方法不修改结构本身的值,那么就有明显的副作用。 自动实现属性的 getter 将被自动认为是只读的。在某些情况下,setter 也可以被标记为只读。...比如,当属性值存于字典中而不是直接存入结构本身的时候。 在目前的提议下,引用类型(类和接口)将不会受到该特性的支持。

    53720

    C# 13 Preview 的 field keyword

    C# 13 Preview 的 field keyword Intro C# 13 将以预览版的特性推出 field keyword 特性,等了几年的功能终于要能用上了,目前在最新版本的 VS 预览版本...(17.12.0 Preview 3)中已经可用,不过可惜的是 .NET 9 RC 2 SDK 还不支持,得等到 .NET 9 正式版本了 Sample field keyword 特性是指在属性(Property...value : 0; } 所以之前这个功能也被称为半自动属性,public string Name { get; set; } 则是完全自动属性 除了这样 getter/setter 直接使用,我们也可以在...getter 返回之前、setter set 之前以及之后做一些自定义的操作,如下: internal static class FieldKeywordSample { public static.../75566 dotnet-exec 的预览版本中也支持了这一特性,从这个特性合并到 main 分支开始就在等待发布新的 Roslyn nuget 包 但是一直没有更新,所以后面使用了 Roslyn 的

    7010

    Java GetterSetter “防坑指南”

    因此,在这篇文章里,我想深入讨论 Java 中的 getter 和 setter 方法,请跟随我一起来看看吧。 一个简单的例子 下面的代码展示了 Getter/Setter 方法的基本使用。...封装是面向对象编程(OOP)的基本特性之一,实现 Getter/Setter 是在程序代码中强制执行封装的方法之一。...相反,它应该返回原始对象的副本。 实现基本类型的 Getter/Setter 方法 在 Java 中,基本类型有 int, float, double, boolean, char......将原始集合中的克隆项添加到新集合中。 自定义对象的 Getter/Setter 方法 如果定义对象的自定义类型,则应针对自己的类型实现 clone() 方法。...getter 和 setter 的规则是: •为自定义类型实现一个 clone() 方法。

    1.3K40

    第二十九章:基于SpringBoot平台使用Lombok来优雅的编码

    图1 我的工具已经安装了该插件,所有在右侧是没有任何按钮的,如果你的工具没有安装该插件,右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就可以了。...(user.getName()); } } 可以看到我们可以正常使用name属性的getter/setter方法,但是其他属性的却是无法调用,下面我们修改注解Getter/Setter位置,配置到实体类上...注意:如果你的属性Getter/Setter需要做特殊处理,那么直接使用原始方法实现即可,Lombok检查到存在自定义的方法后不会再做生成处理。...ToString 除了上述的Getter/SetterLombok还为我们提供了自动生成toString方法的注解@ToString,该注解的作用域仅仅是在实体类上,我们修改实体类添加该注解,在测试类中调用...到这里也许你就有疑问了,我为了一个类添加这么多注解麻烦吗?还不如工具生成getter/setter来的快呢,那好Lombok针对这个问题也做出了解决方案。

    59020

    为什么要用Getter和Setter方法,而不是公开属性

    当我在Java语言编程中开始我的职业生涯时,我就对Getter和Setter感到困惑。为什么要这么写呢?为什么不直接用Public呢?这对我来说是个奇怪的语法。 ?...使用Public属性与通过Getter和Setter公开它的主要区别在于保持对该属性的控制。如果你把一个字段公开,就意味着你可以直接访问调用方。然后,调用者可以做任何事情与你的领域,无论是有意或无意。...例如,可以将字段设置为空值,如果在另一个方法中使用该字段,则该方法可能会因空指针异常而崩溃。 但是,如果你提供了一个Getter和Setter,你可以在完全控制的同时提供间接访问。...我理解,但一般来说,我们不写任何东西在Getter和Setter。我们只返回并设置字段,就像公开字段一样。那你为什么要说这些?...为了回答这个问题,我说通过编写Getter和Setter,我们创建了一个用于将来添加任何验证方法的条款,目前,没有验证,但是如果将来出现任何错误,我们只是在Setter中添加验证逻辑。

    2.2K10

    使用Project Lombok编写Fat-free java代码

    Java Bean是可序列化的类,它们具有默认的零参数构造函数(也可能是其他版本),并通过getter和setter显示其状态,通常由私有字段支持。。...这里发生的事情很简单: 使用@Getter和@Setter我指示Lombok为所有属性生成getter和setter。这是因为我在类级别(class)使用了注解。...注解类属性@NonNull就足够了, Lombok将通过NullPointerException在构造函数和setter方法中适当地生成null检查。...所以,我要离开@Getter原样,再次在@Setter使用AccessLevel.PROTECTED。 也许我想强制一些对该email领域的约束,以便如果被修改,则会执行某种检查。...但是,还有许多其他功能和自定义功能。 Lombok’s documentation 非常翔实和全面。它们为每个单独的功能(注解)提供专门的页面,具有非常详细的说明和示例。

    1.5K10

    关于设计原则,你没听说过的“拆”字诀!

    但这些设计模式中,我们有聊到一些设计原则,并以此作为佐证设计模式在解决问题上的优势。 在进一步深度分析设计模式之前,小二哥从这期开始,给大家分享下程序设计领域中的一些基本原则。...单一职责原则 在面向对象的思想下,我们可以把属性和行为封装到一个单元里--我们称为类。 我们经常听到前辈们说,“把紧密相关的属性和行为封装在一起”。或许大家听过其他的说法。但有些说法是不准确的。...我们自定义类时,如果只要做代码语法正确,那可以在一个类中掺杂各种各样的属性和行为。 但我们通常不像这样做。因为前辈们告诉我们,要注意“高内聚、低耦合”。...按照这个描述,我们可以快速的设计出这个类: public class Teacher { String name; //省略setter/getter public void teachChinese...如果不分开,仍旧把它们合在一个类中,从语法上讲一点毛病都没有!但它还是最开始那个简单的类吗?不是的! 从上面的例子学到了什么? 在很多情况下,我们并不能一次性就按照这个原则把类写好!

    16130

    别再用BeanUtils转换对象啦!这个框架更快更强大!!

    大家好,我是可爱又机灵的开源小妹。 如今微服务架构和领域驱动设计 DDD 愈来愈盛行,于是我们有了大量的 DO 对象与 DTO 对象的映射转化场景。...以前的我都是傻乎乎的使用 getter / setter 方式转换,又慢又容易出错。 周末小妹在家好好的研究了一下,给大家带来开源项目 Orika!...它是一个使用字节码技术栈实现的高性能 Java 对象映射框架,在众多映射框架中是简单易用又高效的代表之作! 下面由小妹带大家去感受一下它的魅力吧!...易用 无需手动敲重复的 getter / setter 方法,不用再写繁琐的 Convert 转化类,无需配置就可直接使用!...Orika 的一大特点就是使用起来非常简单,当然如果你有更特殊的使用场景,可以自行查阅它的官方文档进行定制化,相信你会渐渐放弃让人奔溃的 getter / setter 方式。 我也不用天天加班了!

    54240
    领券