Hello world
def main():
print('Hello Python')
main()
object Hello {
def main(args: Array[String]): Unit = {
println("Hello Scala")
}
}
赋值
variate = '变量'
CONSTANT = '常量'
var variate : String = "变量"
val CONSTANT : String = "常量"
数据类型

| 常用数据类型 | 说明 |
|---|---|
| Any | 其它类的超类 |
| AnyRef | 所有引用类(reference class)的基类 |
| String | 字符序列 |
| Char | 16位无符号Unicode字符,区间值为U+0000到U+FFFF |
| Double | 双精度浮点数 |
| Float | 单精度浮点数 |
| Long | 64位有符号补码整数 |
| Int | 32位有符号补码整数:-2147483648到2147483647 |
| Short | 16位有符号补码整数:-32768到32767 |
| Byte | 8位有符号补码整数:-128到127 |
| Boolean | true或false |
| Unit | 表示无值,用在不返回结果的方法,等同Java的void。打印显示() |
| Null | 只有一个实例null |
| Nothing | Scala的类层级的最底端,是其它类的子类 |
类型判断和强转

# 类型判断
isinstance('abc', str)
isinstance({'b': 2}, dict)
# 类型强转
float(2)
// 类型判断
"abc".isInstanceOf[String]
Map("b"->2).isInstanceOf[Map[String,Int]]
// 类型强转
2.asInstanceOf[Float]
字符串
AGE = 18
sql = """
SELECT * FROM tb WHERE age > {age}
""".format(age=AGE)
val AGE = 18
val sql: String =
s"""
|SELECT * FROM tb WHERE age > ${AGE}
|""".stripMargin
正则表达式
https://blog.youkuaiyun.com/Yellow_python/article/details/114695017
import re
t = 'bird+man=bird_man 01-01 12-31'
p1 = re.compile('([0-9]+)-([0-9]+)')
p2 = re.compile('[a-z]+_[a-z]+')
p3 = re.compile(r'\W+')
print(p1.findall(t))
print(p2.sub('***', t))
print(p3.split(t))
打印结果
[('01', '01'), ('12', '31')]
bird+man=*** 01-01 12-31
['bird', 'man', 'bird_man', '01', '01', '12', '31']
import scala.util.matching.Regex
val t : String = "bird+man=bird_man 01-01 12-31"
val p1: Regex = "([0-9]+)-([0-9]+)".r
val p2: Regex = "[a-z]+_[a-z]+".r
val p3: Regex = new Regex("\\W")
println(p1.findAllIn(t).toList)
println(p2.replaceAllIn(t, "***"))
println(p3.split(t).toList)
打印结果
List(01-01, 12-31)
bird+man=*** 01-01 12-31
List(bird, man, bird_man, 01, 01, 12, 31)
方法和函数
https://yellow520.blog.youkuaiyun.com/article/details/117031129
流程控制
https://blog.youkuaiyun.com/Yellow_python/article/details/117001055
异常:try
https://yellow520.blog.youkuaiyun.com/article/details/114661078
try:
a = 10 / 0
except ZeroDivisionError as e:
print(e)
try {
var a = 10 / 0
} catch {
case e: ArithmeticException => {
println(e)
}
}
面向对象
https://yellow520.blog.youkuaiyun.com/article/details/112858819
附录
| en | 🔉 | cn |
|---|---|---|
| define | /dɪˈfaɪn/ | vt. 定义 |
| lambda | /ˈlæmdə/ | 希腊字母的第11个: λ \lambda λ |
| variate | /ˈverɪeɪt/ | 变量 |
| constant | /ˈkɑːnstənt/ | 常量 |
| division | /dɪˈvɪʒn/ | 除法 |
| arithmetic | /əˈrɪθmətɪk/ | 算术,算法 |
| abstract | /ˈæbstrækt/ | adj. 抽象的;n. 摘要 |
| implement | /ˈɪmpləˌment/ | vt. 实施;实现;n. 工具 |
| implemented | /ˈɪmplɪmentɪd/ | 应用的 |
| meta | /ˈmetə/ | pref. 表示“变化”“变换”之义 |
| metaclass | 元类 | |
| metadata | 元数据 | |
| ride | /raɪd/ | v. 骑(自行车、马等) |
| override | /ˌoʊvərˈraɪd/ | vt. 推翻 |
| singleton | /ˈsɪŋɡltən/ | 单生子女;单身的人 |
| instance | /ˈɪnstəns/ | 实例 |
| mutable | /ˈmjuːtəbl/ | 可变的 |
| immutable | /ɪˈmjuːtəbl/ | 不可变的 |
| extend | /ɪkˈstend/ | v 延伸 |
| trait | /treɪt/ | 特性;品质 |
| property | /ˈprɑːpərti/ | 性质;财产;所有权 |
本文介绍了 Scala 的基本语法和特性,包括 HelloWorld 示例、变量赋值、数据类型、类型判断和转换、字符串操作、正则表达式使用、方法与函数定义、流程控制、异常处理及面向对象编程的基本概念。
2839

被折叠的 条评论
为什么被折叠?



