Scala基础语法入门(一) 注释&变量&标识符&输入输出

🏠 个人主页:csdn春和
📢 推荐专栏:更多专栏尽在主页!
JavaWeb专栏(从入门到实战超详细!!!)
SSM专栏 (更新中)
📝 本期文章:Scala的基础语法第一篇
如果对您有帮助还请三连支持,定会一 一回访!



Scala基础语法了解

1、注释

Scala注释使用和Java完全一样。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。

单行注释

多行注释

文档注释

2、变量

2.1、声明变量

  变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。

声明变量语法:

var | val 变量名 :变量类型 = 变量值

变量的类型在变量名之后等号之前声明。

变量的类型如果能够通过变量值推断出来,那么可以省略类型声明,这里的省略,并不是不声明,而是由Scala编译器在编译时自动声明编译的。

// 因为Scala是静态类型语言,所以即使不声明类型
// Scala也能在编译时正确的判断出变量的类型,这体现了Scala语言的简洁特性。
val num1 = 1
val num2 = 2
val str = "hello world!"

println(num1 * num2)
println(str)

2.2、变量初始化

Java语法中变量在使用前进行初始化就可以,但是Scala语法中是不允许的,必须显示进行初始化操作。

var username // Error
val username = "zhangsan" // OK 必须显示初始化

在这里插入图片描述

2.3、可变变量

值可以改变的变量,称之为可变变量,但是变量类型无法发生改变, Scala中可变变量使用关键字var进行声明

即使用var关键字声明的变量是可变变量,可变变量的可变是值可变而数据类型不可变

// 可变变量
var name : String = "zhangsan"
name = "lisi"
// 修改为其他类型就会报错
name = 20 // error
println(name)

3.2.4、不可变变量

值一旦初始化后无法改变的变量,称之为不可变变量。Scala中不可变变量使用关键字val进行声明, 类似于Java语言中的final关键字

即使用val关键字声明的变两个为不可变变量,不能在修改它的值

// 不可变变量
val name2 : String = "lisi"
name2 = "zhangsan" //error

在这里插入图片描述

2.5、小结

(1)声明变量时,类型可以省略,编译器编译时可以自动推导,即类型推导

(2)类型确定后,就不能修改,说明 Scala 是强数据类型语言。

(3)变量声明时,必须要有初始值 ,即必须显示初始化变量

(4)在声明/定义一个变量时,可以使用 var 或者 val 来修饰,var 修饰的变量可改变, val 修饰的变量不可改。

问题思考

val和var两个修饰符,更推荐使用哪一个?

答:更推荐使用val修饰符,因为在开发中声明的变量一般都会一直使用过,而不会经常去修改它。

java中的字符串为何被称为不可变字符串?

答:不可变字符串只是内存的地址不可变,地址中的内容其实是可以通过反射进行改变的

3、标识符

 Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符。凡是自己可以起名字的地方都叫标识符

Scala 可以使用两种形式的标志符,字符数字和符号。

scala中的标识符命名规范和java基本一致

3.1、以字母或者下划线开头,后接字母、数字、下划线

// 标识符
/*
* scala的标识符和java中的标识符基本一致
* 1、数字、字母、下划线、$
* 2、数字不能开头
* 3、不能使用关键字或保留字
* 4、区分大小写
* 5、长度没有限制
* */

val name: String = "zhangwuji"
val _name: String = "zhangwuji"
val name$: String = "zhangwuji"
val name1: String = "zhangwuji"
//    val 1name:String = "zhangwuji" // error 不能一数字开头
//    val private: String = "zhangwuji" // error 不能使用关键字或保留字

在java中 java重写了+号的运算规则,其实本质就是一个运算符,

运算符在scala中是可以自定义的

3.2、以操作符开头,且只包含操作符(+ - * / # !等)

// Scala中的标识符可以用来声明运算符
// Scala中的标识符不用记住 报错了改就可
val +  = 1 + 1
val -  = 1 + 1
val *  = 1 + 1
val /  = 1 + 1
val %  = 1 + 1
val @@  = 1 + 1
val ##  = 1 + 1
val $  = 1 + 1
val ^ = 1 + 1
val & = 1 + 1
val < = 1 + 1
val > = 1 + 1
// 颜文字
val :-> = "张三"


println(:->)

在这里插入图片描述

3.3、不以$开头

在java中没有颜文字,但是scala又支持颜文字,所以由此可知scalac对此又作出一些操作,使其编译的结果在java中能够得到支持。

反编译查看源码

在这里插入图片描述

在这里插入图片描述

查看

在这里插入图片描述

所以在scala中特殊符号在编译时会转换为以$开头的变量,所以我们应该注意如下问题

Scala 内部实现时会使用转义的标志符,比如:-> 使用 $colon$minus$greater 来表示这个符号。

在这里插入图片描述

所以在声明变量的时候我们一般不能以$开头

以"$“开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用”$"开始的标识符,以免造成冲突。

3.4、不以 _下划线作为变量名

在scala中下划线 _ 的作用非常丰富 为了避免冲突,我们一般不以_ 单独作为变量名来使用

可以声明 但是不能访问

在这里插入图片描述

(5)遵循驼峰命名规则

  Scala 的命名规范采用和 Java 类似的 camel 命名规范,首字符小写,比如 toString。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。

切记:能声明和能使用时两回事

Scala 中的标识符也不能是关键字保留字,那么Scala中有多少关键字或保留字呢?

在这里插入图片描述

3.5、小结

Scala中标识符命名规范和java基本一致但是有一些小的区别

不能以数字开头

不建议使用$开头 可能存在冲突

不建议使用_单独作为变量 可声明但是不能访问

问题一:如何在java中使用scala对象?

在Scala中Object关键字的作用就是声明一个对象,在java中我们可以直接使用对象.方法进行调用

编写一个ScalaTest

package com.zhou.scala.chapter1

/**
 * @author it春和
 * @create 2022-04-26 15:30
 */
object ScalaTest {

  def sayHi(): Unit ={
    println("hello world!")
  }

  def add(a:Int,b:Int): Unit ={
    println(a + b)
  }

}

编写一个java类 在Java类中使用Scala对象

public class JavaUseScala {
    public static void main(String[] args) {
		// 通过对象.方法的方式
        ScalaTest.sayHi();
        ScalaTest.add(20,10);

    }
}

在这里插入图片描述

问题二:如果变量就想使用特定含义的关键字怎么办?

使用``包裹即可

val `private` = "zhangsan"
println(`private`)

4、字符串

 在Scala中字符串的类型实际上就是java中的String类型它本身是没有 String 类的。在 Scala 中,String 是一个不可变的字符串对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。

基础语法:(重点掌握)

(1)字符串,通过+号连接 拼串

(2)printf 用法:字符串,通过%传值。 传值字符串

(3)字符串模板(插值字符串):通过$获取变量值

案例代码:

package com.zhou.scala.chapter1

/**
 * @author it春和
 * @create 2022-04-26 19:56
 */
object Scala03_string {

  def main(args: Array[String]): Unit = {

    val username: String = "张无忌"
    val age: Int = 20

    // 1、拼接字符串
    println("你好" + username)


    // 2、传值字符串(格式化字符串)
    printf("用户名=%s,年龄=%d\n", username, age)


    // 3、插值字符串 (将变量的值插入到字符串中)
    println(s"${username}今年${age}岁")

    // 4、如果需要对变量进行运算,那么可以加${}
    println(s"${username}今年${age}岁,两年后是${age+2}岁")
  }
}

在这里插入图片描述

5、键盘输入

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取

// 基本语法
StdIn.readLine()、StdIn.readShort()、StdIn.readDouble()

案例:从控制台接收用户信息

package com.zhou.scala.chapter1

import scala.io.StdIn

/**
 * @author it春和
 * @create 2022-04-25 9:56
 */
object Scala04_input {

  def main(args: Array[String]): Unit = {

    // 接收控制台输入

    // 接收用户名
    println("请输入用户名:")
    val username: String = StdIn.readLine()

    // 接收年龄
    println("请输入年龄:")
    val age: Int = StdIn.readInt()

    // 打印
    println(s"用户${username}今年${age}岁!")

  }
}

在这里插入图片描述

小结:

1、Scala注释和java中的注释完全一样

2、变量分为可变变量和不可变变量(常量),可变变量一般用var来声明,不可变变量用val来声明,更加推荐使用val声明变量

3、标识符的规范和java一样但有区别需要注意区分

4、字符串输出的三种形式需要掌握(拼串、传值字符串、插值字符串)

5、键盘输入的语法 StdIn.readXxx

  • 42
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 41
    评论
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值