`
fantaxy025025
  • 浏览: 1309225 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

变量只定义不赋值会怎么样Perl_Python_Ruby_Javascript_Java

 
阅读更多

变量只定义不赋值会怎么样_Python_Ruby_Javascript_Java

也就是说只声明,并没有赋值语句。

 

一。ruby

 

对于局部变量:

这种说法,在ruby中是不存在的,因为不存在声明的关键字,也可以说根本不能只声明一个变量。

 

x #undefined local variable or method `x' for main:Object (NameError)
#就是调用x
#声明的同时必须赋值,否则就是调用了

 

 

对于实例变量: 

ruby中,实例变量,也没有办法声明而不赋值,例如@a就是使用@a,而不是声明;# ruby中没有声明变量的关键字。

为什么这样呢,因为ruby中,引用实例变量的时候,如果没有声明,不会报错,而是返回nil。(再深先不说了)

 

irb(main):001:0> instance_variables
=> []
irb(main):002:0> @a
=> nil
irb(main):003:0> instance_variables
=> []
irb(main):004:0> @a = 'Lee'
=> "Lee"
irb(main):005:0> instance_variables
=> ["@a"]

 

 

二。 Java

 

对于局部变量:

java中可以有声明的局部变量,不用赋值也不报错。

可是一旦使用(引用),就会报编译错误,也就是说,编译首先就不会通过。

 

对于实例变量: 

声明后不赋值,会默认设置一个值;具体的设置的值,有变化。类型如String类型会设置null,int的会设置为0等

 

 

public class TestLee {

    String x = "xxx";
    String y;

    public static void main(String[] args) {
        String a = "aaa";
        String b;//注释掉下面的,就不报编译错误了
        System.out.println("a = " + a);
        //System.out.println("b = " + b);//#Compile Error#variable b might not have been initialized

        TestLee testLee = new TestLee();
        System.out.println("x = " + testLee.getX());
        System.out.println("y = " + testLee.getY());
    }

    public String getX() {
        return x;
    }

    public void setX(String x) {
        this.x = x;
    }

    public String getY() {
        return y;
    }

    public void setY(String y) {
        this.y = y;
    }
}
 

 

三。Javascript

 

 

对于局部变量:

声明后才可以用;//否则报错

声明不赋值,也能声明成功;//也就是说可以这么做~

声明不赋值,不会改变原值!

 

对于实例变量: 

 

不光可以声明,

进一步,不声明也可以用,不报错!(跟Ruby类似了)

 

        function a(i){
            console.debug("i = " + i);
            var i;//声明不赋值,不会改变原值(细节深入先不说了)
            console.debug("i = " + i);
            //console.debug("j = " + j);//#Runtime Error#Uncaught ReferenceError: j is not defined

            this.x;
            console.debug("x = " + this.x);//here!
            this.y = "lee";
            console.debug("y = " + this.y);
            console.debug("z = " + this.z);//这里
        }
        a(10);

 

 

 

JS好文:

http://ued.sohu.com/article/204

http://js8.in/745.html

http://www.nowamagic.net/javascript/js_PuzzleJavascriptQuiz.php

 

待补。。。

 

 

分享到:
评论

相关推荐

    1.2 编程基础之变量定义、赋值及转换 python版.zip

    在Python编程语言中,变量定义、赋值及转换是学习编程的基础。这些概念构成了程序运行的基础,让计算机能够处理各种数据。在这个"1.2 编程基础之变量定义、赋值及转换 python版.zip"的压缩包里,包含了一系列关于...

    用于模拟的python包_Python_Perl_下载.zip

    Python 和 Perl 是两种广泛使用的编程语言,特别是在系统脚本、自动化任务和数据分析等领域。这个名为 "用于模拟的python包_Python_Perl_下载.zip" 的压缩包文件主要关注的是 Python 中的一个特定库 —— SimPy。...

    MOSEK_API_for_Python.pdf

    MOSEK Fusion API for Python提供了一个灵活的模型构建机制,允许用户通过定义变量、约束和目标函数来构建优化模型。该API支持多种类型的优化模型,包括线性优化、圆锥优化和指数优化等。 4. 变量和约束 MOSEK ...

    java环境变量一键设置

    Java环境变量配置 在"系统变量"下进行如下配置: (1)新建->变量名:JAVA_HOME变量值:D:\Java\jdk1.6.0_12(这只是我的JDK安装路径) (2)编辑->变量名:Path在变量值的最前面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\...

    netcdf.zip_netcdf_netcdf python_python extract_python netcdf

    标题中的"netcdf.zip_netcdf_netcdf python_python extract_python netcdf"表明这是一个关于使用Python处理netCDF文件的主题。NetCDF(Network Common Data Form)是一种用于存储和处理科学数据的自描述、机器无关的...

    cmake_c++_python_swig

    SWIG不仅支持C++,还支持许多其他语言,如Java、Perl、Ruby等。通过SWIG,开发者可以将现有的C++代码快速地包装成Python模块,无需手动编写复杂的Python-C接口代码。 **CMake与SWIG结合使用** 在CMake项目中整合...

    jscn.rar_java chm_java script_javascript_javascript c_javascript

    《JavaScript 语言参考》中文版(CHM)是一个关于JavaScript编程语言的综合参考资料,适用于初学者和有经验的开发者。此资源包含了一个CHM(Compiled Help Manual)文件,这是微软开发的一种帮助文档格式,通常用于...

    Abaqus_Python开发使用指南

    《Abaqus_Python开发使用指南》是一份由TJ_JAC撰写的技术文档,详细介绍了在有限元分析软件Abaqus中使用Python编程语言进行开发的各种方法和技巧。该文档分为多个章节,逐步深入地讲解了Python的基本运行方式、语言...

    functions_定义函数_python_

    函数内部定义的变量只存在于该函数的局部作用域,外部无法直接访问。如果需要在函数外使用,可以使用`return`语句返回。 ```python def get_square(num): square = num ** 2 return square result = get_square...

    LSTM系列_LSTM多变量预测_lstm预测_Lstm预测成绩_python_

    “python”是实现这些LSTM模型的编程语言,Python拥有丰富的机器学习库,如TensorFlow、Keras和PyTorch,它们提供了方便的接口来构建和训练LSTM网络。例如,使用Keras,可以简洁地定义LSTM模型,然后用历史数据进行...

    stat_python_

    在Python编程语言中,"static"关键字并不像Java或C++那样被直接支持来定义静态变量。Python的设计哲学是简洁且动态的,因此它没有内置的静态变量概念。但是,我们可以通过其他方式来实现类似的功能。这个名为"stat_...

    Java_jdk1.8.0_241 环境变量

    Java JDK 1.8.0_241 环境变量是Java开发与运行的基础配置,对于任何Java开发者来说,理解和设置这些环境变量至关重要。本文将深入探讨Java的环境变量,包括`JAVA_HOME`, `PATH`, 和 `CLASSPATH`,以及它们在JDK ...

    experiment1_python_

    在实验1中,你可能会学习到如何定义和赋值变量,以及如何打印输出。例如,`num = 5` 就是定义一个名为num的变量并赋值为5,`print(num)` 则会将这个值打印出来。同时,你还会接触到字符串的使用,如创建一个字符串`...

    Python库 | aws_cdk.aws_lambda_python-1.95.0-py3-none-any.whl

    只需上传代码并定义触发器,Lambda会自动处理代码执行的计算资源。`aws_lambda_python`模块使得在CDK中创建和配置Lambda函数变得更加容易和直观。 版本`1.95.0`表示此库是其开发过程中的一个稳定版本,可能包含一...

    python常见面试题_Python基本面试题深入解答.rar_python面试

    Python中的变量赋值是引用赋值,这意味着多个变量可以指向同一个对象。 3. **控制流与循环** - **条件语句(if, elif, else)**:用于根据条件执行不同的代码块。 - **for循环**:常用于遍历序列或集合。 - **...

    Python3单行定义多个变量或赋值方法

    在Python3中,单行定义多个变量或赋值是一种高效且简洁的编程方式,它能够帮助程序员节省代码行数,提高代码的可读性。这一特性使得Python在编写快速原型或者简洁的脚本时尤为方便。下面我们将深入探讨这一主题。 ...

    以python库 的形式 实现 NSGA-II算法_python_代码_下载

    以 python 库的形式实现 NSGA-II 算法。 该实现可用于解决多变量(多于一维)多目标优化问题。目标和维度的数量不受限制。一些关键算子被选为:二元锦标赛选择、模拟二元交叉和多项式变异。请注意,我们并不是从头...

    mysql 存储过程中变量的定义与赋值操作

    一、变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin…end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需要,可以使用default...

Global site tag (gtag.js) - Google Analytics