第一个说了算,还是最后一个
入门。
程序中可以给同一个变量多次赋值,后一次赋值会覆盖前一次的值。
jshell> int n = 0;
n ==> 0
jshell> n = 1;
n ==> 1
放弃?
可能你会有类似的经历:
你用 Bootstrap 或其他的 framework,但想改动 CSS 来调整页面样式。你明明在 HTML 中加上了 CSS 的链接,但样式没有丝毫的改变。
或者你下了一个最新的 JDK,在.bashrc
中添加了JAVA_HOME
,然后把它加入了PATH
,但source
之后which java
仍然给你旧的 Java 版本。
进阶!
在程序中重复赋值,无可争议的只有最后一个值会生效。
但在样式表或配置文件中,同一个属性或变量是可能有重复的,需要搞清楚到底是第一个说了算还是最后一个说了算。
CSS
CSS 中默认是最后一个说了算,比如之前定义了font-size
,后面又定义了一次
h1 {
font-size: 1.75rem;
}
h1 {
font-size: 2rem;
}
只有最后一个会生效,也就是2rem
。所以要保证自己写的 CSS 文件在 Bootstrap 等框架的 CSS 之后载入。
如果要强制不让后面的赋值覆盖,可以使用!important
h1 {
font-size: 1.75rem !important;
}
h1 {
font-size: 2rem;
}
.bashrc/.bash_profile
这里是第一个值说了算。所以当添加路径到PATH
的时候,要保证新的路径放在最前面:
export JAVA_HOME=/path/to/jdk-x.x.x
PATH=$JAVA_HOME/bin:$PATH