一天学完spark的Scala基础语法教程一、基础语法与变量(idea版本)
📋前言📋
💝博客主頁:紅目香薰_CSDN博客-大數據,計算機理論,MySQL領域博主💝
?本文由在下【紅目香薰】原創,首發于CSDN?
🤗2022年最大愿望:【服務百萬技術人次】🤗
💝初始環境地址:【spark環境搭建(idea版本)_紅目香薰-CSDN博客】💝
環境需求
環境:win10
開發工具:IntelliJ IDEA 2021.2
maven版本:3.6.3
目錄
📋前言📋
環境需求
創建測試類:
基本語法
標識符
Scala 關鍵字
Scala 注釋
空行和空格
換行符
Scala 包
定義包
引用
Scala 數據類型
Scala 基礎字面量
整型字面量?
浮點型字面量
布爾型字面量
字符字面量
字符串字面量
多行字符串的表示方法
Null 值
Scala 轉義字符
????????Scala 變量
????????變量聲明
總結:
創建測試類:
【day1/demo1.scala】
這里是有包名(后面有講述)的
?通過Package可以創建包名
基本語法
Scala 基本語法需要注意以下幾點:
-
區分大小寫?- ?Scala是大小寫敏感的,這意味著標識Hello 和 hello在Scala中會有不同的含義。
-
類名?-?對于所有的類名的第一個字母要大寫。
如果需要使用幾個單詞來構成一個類的名稱,每個單詞的第一個字母要大寫。
示例:class MyFirstScalaClass -
方法名稱?- 所有的方法名稱的第一個字母用小寫。
如果若干單詞被用于構成方法的名稱,則每個單詞的第一個字母應大寫。
示例:def myMethodName() -
程序文件名?- 程序文件的名稱應該與對象名稱完全匹配(新版本不需要了,但建議保留這種習慣)。
保存文件時,應該保存它使用的對象名稱(記住Scala是區分大小寫),并追加".scala"為文件擴展名。 (如果文件名和對象名稱不匹配,程序將無法編譯)。
示例:?假設"HelloWorld"是對象的名稱。那么該文件應保存為'HelloWorld.scala" -
def main(args: Array[String])?-?Scala程序從main()方法開始處理,這是每一個Scala程序的強制程序入口部分。
標識符
Scala 可以使用兩種形式的標志符,字符數字和符號。
字符數字使用字母或是下劃線開頭,后面可以接字母或是數字,符號"$"在 Scala 中也看作為字母。然而以"$"開頭的標識符為保留的 Scala 編譯器產生的標志符使用,應用程序應該避免使用"$"開始的標識符,以免造成沖突。
Scala 的命名規則采用和 Java 類似的 camel 命名規則,首字符小寫,比如 toString。類名的首字符還是使用大寫。此外也應該避免使用以下劃線結尾的標志符以避免沖突。符號標志符包含一個或多個符號,如+,:,? 等
+ ++ ::: < ?> :->Scala 關鍵字
下表列出了 scala 保留關鍵字,我們不能使用以下關鍵字作為變量:
| abstract | case | catch | class |
| def | do | else | extends |
| false | final | finally | for |
| forSome | if | implicit | import |
| lazy | match | new | null |
| object | override | package | private |
| protected | return | sealed | super |
| this | throw | trait | try |
| true | type | val | var |
| while | with | yield | |
| - | : | = | => |
| <- | <: | <% | >: |
| # | @ |
Scala 注釋
Scala 類似 Java 支持單行和多行注釋。多行注釋可以嵌套,但必須正確嵌套,一個注釋開始符號對應一個結束符號。注釋在 Scala 編譯中會被忽略,
實例如下:
package day1 /* 這是一個 Scala 程序* 這是一行注釋* 這里演示了多行注釋*/ object demo1 {def main(args: Array[String]) {// 輸出 Hello World// 這是一個單行注釋println("Hello, world!")} }空行和空格
一行中只有空格或者帶有注釋,Scala 會認為其是空行,會忽略它。標記可以被空格或者注釋來分割。
換行符
Scala是面向行的語言,語句可以用分號(;)結束或換行符。Scala 程序里,語句末尾的分號通常是可選的。如果你愿意可以輸入一個,但若一行里僅 有一個語句也可不寫。另一方面,如果一行里寫多個語句那么分號是需要的。
例如:
package day1object demo1 {def main(args: Array[String]) {val s = "菜鳥教程";println(s);println(s);} }Scala 包
定義包
Scala 使用 package 關鍵字定義包,在Scala將代碼定義到某個包中有兩種方式:
第一種方法和 Java 一樣,在文件的頭定義包名,這種方法就后續所有代碼都放在該包中。
比如:
//包名 package day1 //類名 object demo1 {//函數名def main(args: Array[String]) {} }引用
Scala 使用 import 關鍵字引用包。
//包名 package day1 //引入util下所有 import java.util._ //類名 object demo1 {//函數名def main(args: Array[String]) {} }Scala 數據類型
Scala 與 Java有著相同的數據類型,下表列出了 Scala 支持的數據類型:
| Byte | 8位有符號補碼整數。數值區間為 -128 到 127 |
| Short | 16位有符號補碼整數。數值區間為 -32768 到 32767 |
| Int | 32位有符號補碼整數。數值區間為 -2147483648 到 2147483647 |
| Long | 64位有符號補碼整數。數值區間為 -9223372036854775808 到 9223372036854775807 |
| Float | 32 位, IEEE 754 標準的單精度浮點數 |
| Double | 64 位 IEEE 754 標準的雙精度浮點數 |
| Char | 16位無符號Unicode字符, 區間值為 U+0000 到 U+FFFF |
| String | 字符序列 |
| Boolean | true或false |
| Unit | 表示無值,和其他語言中void等同。用作不返回任何結果的方法的結果類型。Unit只有一個實例值,寫成()。 |
| Null | null 或空引用 |
| Nothing | Nothing類型在Scala的類層級的最底端;它是任何其他類型的子類型。 |
| Any | Any是所有其他類的超類 |
| AnyRef | AnyRef類是Scala里所有引用類(reference class)的基類 |
上表中列出的數據類型都是對象,也就是說scala沒有java中的原生類型。在scala是可以對數字等基礎類型調用方法的。
Scala 基礎字面量
Scala 非常簡單且直觀。接下來我們會詳細介紹 Scala 字面量。
整型字面量?
整型字面量用于 Int 類型,如果表示 Long,可以在數字后面添加 L 或者小寫 l 作為后綴。
浮點型字面量
如果浮點數后面有f或者F后綴時,表示這是一個Float類型,否則就是一個Double類型的。
布爾型字面量
布爾型字面量有 true 和 false。 ??
字符字面量
在 Scala 字符變量使用單引號?'?來定義,如下:
package day1object demo1 {def main(args: Array[String]) {var c='A';println(c+0)} }字符串字面量
在 Scala 字符串字面量使用雙引號?"?來定義,如下:
package day1object demo1 {def main(args: Array[String]) {println("Hello,\nWorld!")} }多行字符串的表示方法
多行字符串用三個雙引號來表示分隔符,格式為:""" ... """。
實例如下:
package day1object demo1 {def main(args: Array[String]) {val str ="""道路千萬條安全第一條行車不規范親人兩行淚""";print(str);} }Null 值
空值是 scala.Null 類型。
Scala.Null和scala.Nothing是用統一的方式處理Scala面向對象類型系統的某些"邊界情況"的特殊類型。
Null類是null引用對象的類型,它是每個引用類(繼承自AnyRef的類)的子類。Null不兼容值類型。
Scala 轉義字符
下表列出了常見的轉義字符:
| \b | \u0008 | 退格(BS) ,將當前位置移到前一列 |
| \t | \u0009 | 水平制表(HT) (跳到下一個TAB位置) |
| \n | \u000a | 換行(LF) ,將當前位置移到下一行開頭 |
| \f | \u000c | 換頁(FF),將當前位置移到下頁開頭 |
| \r | \u000d | 回車(CR) ,將當前位置移到本行開頭 |
| \" | \u0022 | 代表一個雙引號(")字符 |
| \' | \u0027 | 代表一個單引號(')字符 |
| \\ | \u005c | 代表一個反斜線字符 '\' |
0 到 255 間的 Unicode 字符可以用一個八進制轉義序列來表示,即反斜線?\?后跟 最多三個八進制。
在字符或字符串中,反斜線和后面的字符序列不能構成一個合法的轉義序列將會導致 編譯錯誤。
package day1object demo1 {def main(args: Array[String]) {println("Hello\tWorld\n\n" );} }Scala 變量
變量是一種使用方便的占位符,用于引用計算機內存地址,變量創建后會占用一定的內存空間。
基于變量的數據類型,操作系統會進行內存分配并且決定什么將被儲存在保留內存中。因此,通過給變量分配不同的數據類型,你可以在這些變量中存儲整數,小數或者字母。
變量聲明
在學習如何聲明變量與常量之前,我們先來了解一些變量與常量。
- 一、變量: 在程序運行過程中其值可能發生改變的量叫做變量。如:時間,年齡。
- 二、常量 在程序運行過程中其值不會發生變化的量叫做常量。如:數值 3,字符'A'。
在 Scala 中,使用關鍵詞?"var"?聲明變量,使用關鍵詞?"val"?聲明常量。
由于Scala是屬于弱類型的,故而變量類型不需要單獨聲明,當然想聲明也可以:
val Str : String = "test";//聲明類型的變量聲明變量實例如下:
package day1object demo1 {def main(args: Array[String]) {var isf=true;//true與falsevar c ='y';//short.Max*2,字符ASCII碼var i=666;//int最大值21億var l=99999999999999999l;//long類型需要一個小寫的【l】結尾var f=3.14f;//float需要【f】結尾var d=3.1415926;//double不需要var s="Hello";} }總結:
到這里有關spark的Scala基礎語法教程一、基礎語法與變量(idea版本)就講解完了。
希望能對大家有所幫助。
歡迎一鍵三連,謝謝。
總結
以上是生活随笔為你收集整理的一天学完spark的Scala基础语法教程一、基础语法与变量(idea版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark环境搭建(idea版本)
- 下一篇: 一天学完spark的Scala基础语法教