php中变量有哪些基本数据类型-,php变量使用之前需要定义变量类型

  php中变量有哪些基本数据类型?,php变量使用之前需要定义变量类型

  一、定义变量Scala第一次定义变量时,必须在变量名前加上关键字“var”或“val”。用“var”修饰的变量可以被赋予新值,原始值被丢弃,类似于Java的非final变量。后续的重新赋值就不用写“var”了。用“val”修饰的变量是禁止重新赋值的,类似于Java的final变量,换句话说就是只能读不能写的变量。

  变量名可以是字母、数字和下划线的任意组合,但不能以数字开头。Scala推荐的命名方式是“驼峰命名”,即每个单词的首字母大写,变量名和函数名以小写字母开头,类、对象和traits以大写字母开头。比如“val isOne”“class my class”。第一次定义变量时,必须用特定的值对它们进行初始化。不能以下列形式出现:

  val x

  x=1

  以下代码都是合法的变量定义:

  标量值x=1

  x: Int=1

  标量变量y=2

  y: Int=2

  scala val msg=你好,世界!

  msg: String=Hello,world!

  当重新分配var类型的变量时,新值必须与旧值的类型相同,否则将出现类型匹配错误:

  标量变量x=1

  x: Int=1

  scala x=10

  x: Int=10

  scala x=abc

  控制台:12:错误:类型不匹配;

  找到:字符串( abc )

  必需:Int

  x=abc

  ^

  val类型的变量被直接禁止重新分配:

  标量值x=1

  x: Int=1

  scala x=10

  控制台:12:错误:重新分配给val

  x=10

  ^

  如果要给多个变量赋同一个值,不需要逐个定义,在语句中使用逗号分隔的变量名即可。例如:

  标量值a,b,c=1

  答:Int=1

  b: Int=1

  c: Int=1

  Scala的变量定义是覆盖的,即如果出现同名变量,后面的变量会覆盖前面的变量。例如:

  标量值x=1

  x: Int=1

  标量值x=10

  x: Int=10

  scala x

  res0: Int=10

  注意,分配给变量的对象是可变的和不可变的。了解变量本身所指向的对象是否发生了变化,或者变量是否指向了新的对象。即使是val类型的变量也可以被赋予一个可变对象。这个可变对象可以再次修改,例如,向可变映射添加一个新的键值对。其实只是旧对象变了,没有创建新对象。

  Scala提倡定义val类型的变量,因为它是函数式编程,函数式编程的一个思想就是传入函数的参数不要改变。所以在Scala中,所有函数的参数都必须是val类型。然而,Scala也允许命令式编程,所以var类型的变量被保留,尽管不建议这样做。例如,对于习惯命令式编程的读者,他们喜欢写“for(I=0;I N;I)”实现一个循环,显然更倾向于使用var类型的变量,因为在这个for循环中,变量I被重新赋值了几次。Scala建议读者学习使用val,学习函数式编程。我也学过C/C,但是现在完全习惯了函数式编程。使用val类型的一个好处是,你不需要计算某个时刻变量的值,因为val类型的变量一旦初始化,在被重新定义之前保持不变。

  二、Scala Scala的基本类型是静态语言,编译时会检查每个对象的类型。在编译时可以发现类型不匹配的非法操作。对于动态语言,这种非法操作需要等到运行时才能被发现,这可能会导致严重的错误。所以静态语言在某些方面比Python等动态语言更有优势。对于凿子来说,我们需要这个优势。因为Chisel需要编译成Verilog,所以我们不能生成一个非法的Verilog语句,等到模块运行的时候再去找。

  Scala标准库定义了一些基本类型,如下表所示。除了“String”类型属于java.lang包,其余都在Scala的包里。

  Scala的基本类型,Byte8位有符号整数,用补码表示,范围是Short16位有符号整数,补码表示,范围是Int32位有符号整数,补码表示,范围是Long64位有符号整数,补码表示,范围是Char16位字符,Unicode编码,是一个字符串Float32位单精度浮点数,范围从0到String,一个Double64位双精度浮点数,符合IEEE 754标准,一个Boolean其实在定义变量的时候就应该注明变量的类型,但是Scala的编译器有自动推断类型的功能,可以根据赋给变量的对象类型自动推断出变量的类型。如果要显式声明变量的类型,或者无法推断,只需在变量名后加一个冒号“:”,然后写出等号和冒号之间的类型名。例如:

  scala val x: Int=123

  x: Int=123

  scala val y: String=123

  y: String=123

  scala val z: Double=1.2

  z: Double=1.2

  一、Integer Literal Integer有四种类型,默认推断为Int。如果文字量的末尾有一个L或L,则推断为长类型。此外,在定义变量时,需要显式声明Byte和Short。请注意,分配给的文本值不能超出类型的表示范围。

  默认情况下,文字量是十进制的,但如果它们以“0x”或“0X”开头,则被视为十六进制的。十六进制字母不区分大小写。例如:

  标量值a=100

  答:Int=100

  标量值b=0X123Abc

  b: Int=1194684

  标量值c: Byte=200

  控制台:11:错误:类型不匹配;

  找到:Int(200)

  必需:字节

  val c:字节=200

  ^

  标量值d=200L

  d:长=200

  二。浮点数的文献浮点数的文字都是十进制,默认类型是Double。可以加上一个字母“e”或者“e”,然后加上一个整数作为指数,这样就形成了10的n次方。可以在末尾写一个“f”或“f”,表示浮点类型;也可以写一个“D”或“D”来表示双型。请注意,Double类型的文字不能赋给Float类型的变量。虽然允许将Float扩展为Double类型,但是精度会损失。例如:

  标量值a=1.2E3

  答:Double=1200.0

  标量值b=-3.2f

  b:浮动=-3.2

  scala val c: Float=-3.2

  控制台:11:错误:类型不匹配;

  发现:双精度(-3.2)

  必需:浮点型

  val c: Float=-3.2

  ^

  scala val d: Double=-3.2F

  d:Double=-3.2000000000546567

  三。字符和字符串的字面量。字符的文字量是用单引号“”括起来的字符,用Unicode编码。还可以用 u code number 来构造一个字符,Unicode代码可以出现在代码的任何地方,甚至出现在名字命名中。此外,还支持转义字符。例如:

  scala val a=A

  a: Char=A

  scala val b=u0041

  b: Char=A

  scala val c=u0042

  c: Char=B

  scala val u0041u0042=1

  AB: Int=1

  scala val d=

  d: Char=

  字符串是用双引号括起来的字符序列,长度不限,并且允许与转义字符混合使用。此外,还可以在前后用三个双引号包裹,这样双引号也可以出现在字符串中,转义字符不会被解释。例如:

  scala val a=\

  答:String=

  Scala val b= So long u 0041 String !

  b: String=这么长的一个字符串 !

  .字符串插值Scala包含了一个灵活的机制来支持字符串插值,它允许表达式被嵌入到字符串中并被求值。第一种形式是S内插符,即在字符串的双引号前加一个S,形如S“…$ { expression }…”。s插值器会对每个嵌入的表达式进行求值,对求值结果调用内置的toString方法,用文字量替换表达式。从美元符号到第一个非标识符字符的部分(字母、数字、下划线和操作符的组合称为标识符,用反引号```括起来的字符串)将被视为一个表达式。如果有非标识符字符,它必须放在花括号中,并且左边的花括号应该紧跟在美元符号之后。第二种形式是原始内插符,它类似于S内插符,只是它不识别转义字符。第三种形式是F内插器,它允许您将printf风格的指令添加到嵌入式表达式中。指令放在表达式之后,以百分号开头。指令语法来自java.util.Formatter,例如:

  scala val name=ABC

  名称:String=ABC

  scala println(s$name DEFG )

  ABC DEFG公司

  scala sSum=${1 10}

  res0: String=Sum=11

  scala s

  res1: String=

  scala raw

  res2: String=\

  scala printf(f${math。Pi}%.5f )

  3.14159

  三。总结本章介绍Scala定义变量和基本变量类型的方法,重点是学习使用val类型变量。

  前一章Scala ——介绍让你的代码运行下一章基本Scala ——函数及其形式

php中变量有哪些基本数据类型-,php变量使用之前需要定义变量类型