日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scala基础教程(二):数据类型、变量

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scala基础教程(二):数据类型、变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基礎語法

關于Scala程序,這是非常要注意以下幾點。

·????????區分大小寫 - ?Scala是大小寫敏感的,這意味著標識Hello 和 hello在Scala中會有不同的含義。

·????????類名 -?對于所有的類名的第一個字母要大寫。

如果需要使用幾個單詞來構成一個類的名稱,每個單詞的第一個字母要大寫。

示例:classMyFirstScalaClass

·????????方法名稱 - 所有的方法名稱的第一個字母用小寫。

如果若干單詞被用于構成方法的名稱,則每個單詞的第一個字母應大寫。

示例:defmyMethodName()

·????????程序文件名 - 程序文件的名稱應該與對象名稱完全匹配。

保存文件時,應該保存它使用的對象名稱(記住Scala是區分大小寫),并追加“.scala”為文件擴展名。 (如果文件名和對象名稱不匹配,程序將無法編譯)。

示例:?假設“HelloWorld”是對象的名稱。那么該文件應保存為'HelloWorld.scala“

·????????def main(args: Array[String]) -?Scala程序從main()方法開始處理,這是每一個Scala程序的強制程序入口部分。

Scala修飾符:

所有的Scala的組件需要名稱。使用對象,類,變量和方法名被稱為標識符。關鍵字不能用作標識符和標識是區分大小寫的。Scala支持以下四種類型標識符:

文字標識符

字母數字標識符開始以字母或下劃線,可以使用字母,數字或下劃線。“$”字符在Scala中是保留關鍵字,標識符不能使用。以下是合法的字母標識符:

age, salary, _value,? __1_value

以下是非法標識符:

$salary, 123abc, -salary

運算符標識

運算符識別符由一個或多個運算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的運算符標識:

+ ++ ::: <?> :>

Scala編譯器將在內部“軋”操作符標識符使它們成為合法的Java標識符,并嵌入$字符。例如,所述標識符:->將內部表示為$colon$minus$greater。

混合標識符

混合標識符由一個字母數字識別符,隨后是一個下劃線和運算符標識。以下是合法的混合標識符:

unary_+,? myvar_=

在這里,作為一個方法名unary_+定義了一個一元+運算符和myvar_=用來作為方法名稱定義了一個賦值運算符。

立即數標識符

一個文字標識是包含在反引號(` . . . `)的任意字符串。以下是合法的文字標識:

`x` `<clinit>` `yield`

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編譯器忽略。

object HelloWorld { ?? /* This is my first java program.? ????* This will print 'Hello World' as the output ??? * This is an example of multi-line comments. ??? */ ?? def main(args: Array[String]) { ????? // Prints Hello World ????? // This is also an example of single line comment. ????? println("Hello, world!") ???} }

空行和空格:

僅包含空格,可能帶有注釋行,被稱為一個空行,并且Scala將會完全忽略它。標記可以通過空格和/或注釋分開。

換行符:

Scala是面向行的語言,語句可以用分號(;)結束或換行符。分號在聲明的結尾通常是可選的。可以鍵入一個想要的,如果語句出現其本身在一行。在另一方面,如果寫在一行多個語句分號是必需的:

val s = "hello"; println(s)

Scala包:

包是一個代碼命名的模塊。例如,Lift 實用包net.liftweb.util。包聲明是在源文件中的第一個非注釋行,如下所示:

package com.liftcode.stuff

Scala的包可以被導入,使他們能夠在當前編譯范圍內被引用。下面的語句是導入scala.xml包的內容:

import scala.xml._

可以導入封裝的類和對象,例如,從scala.collection.mutable導入HashMap:

import scala.collection.mutable.HashMap

可以從一個單一封裝的scala.collection.immutable包導入多個類或對象,例如,TreeMap和TreeSet:

import scala.collection.immutable.{TreeMap, TreeSet}

?

?

Scala的數據類型全部相同于Java中,具有相同的內存占用和精度。以下表是有關可在Scala中所有的數據類型的細節:

數據類型

描述

Byte

8位有符號值。范圍從-128127

Short

16位有符號值。范圍從-3276832767

Int

32?位有符號值。范圍從?-2147483648 to 2147483647

Long

64位有符號值。-92233720368547758089223372036854775807

Float

32IEEE754單精度浮點數

Double

64IEEE754雙精度浮點數

Char

16位無符號Unicode字符。范圍由U+0000U+FFFF

String

字符序列

Boolean

無論是字面truefalse字面

Unit

對應于沒有值

Null

空或空引用

Nothing

每一個其他類型的子類型;?包括無值

Any

Any類型的超類型;任何對象是任何類型

AnyRef

任何引用類型的超類型

上面列出的所有的數據類型是對象。沒有原始的類型,如Java中。這意味著可以調用int,long等上的方法

Scala基本字面值:

Scala中使用的文字規則是簡單和直觀的。這部分解釋了所有Scala中的基本文字。

整數值

整數文字通常是int類型,或類型龍其次是L或l后綴的時候。下面是一些整數文字:

0 035 21 0xFFFFFFFF 0777L

浮點型

浮點文字是Float類型后跟一個浮點類型后綴F或f時,否則是Double類型。下面是一些浮點文字:

0.0 1e30f 3.14159f 1.0e100 .1

布爾類型

布爾字面值true和false是Boolean類型的成員。

符號字面值

符號常量'x是簡寫的表達scala.Symbol(“X”)。Symbol是一個類,它的定義如下。

package scala final case class Symbol private (name: String) { ?? override def toString: String = "'" + name }

字符

字符文字是用引號括起來的單個字符。該字符是一個可打印的Unicode字符或轉義序列描述。這里有一些字符文字:

'a' 'u0041' ' ' '???????? '

字符串常量

字符串常量是在雙引號中的字符序列。字符或者是可打印Unicode字符或轉義序列描述。下面是一些字符串:

"Hello, World!" "This string contains a " character."

多行字符串

多行字符串是包含在三重引號“”字符序列“...”“”。字符序列是任意的,不同之處在于它可以包含三個或更多個連續引號字符僅在未尾。

字符未必是可打印;新的一行或其他控制字符也是允許的。這里是一個多行字符串:

"""the present string spans three lines."""

NULL值

null是scala.Null類型一個值,因此這個引用類型兼容。它表示參考值是指一種特殊的“空”的對象。

轉義序列:

以下轉義序列在字符和字符串。

轉義序列

Unicode

描述

?

?

u0008

退格BS

?

u0009

水平制表符HT

?

u000c

換頁FF

f

u000c

換頁FF

?

u000d

回車CR

"

u0022

雙引用 "

'

u0027

單引用?.

\

u005c

反斜線?

介于0和255字符使用Unicode也可以通過一個八進制轉義,也就是說,一個反斜杠“”之后的最多三個八進制字符的序列表示。以下為例子來說明一些轉義字符序列:

object Test { ?? def main(args: Array[String]) { ????? println("Hello World ? " ); ?? } }

當上述代碼被編譯和執行時,它產生了以下結果:

Hello?? World

?

?

變量是只不過是保留內存位置來存儲值。這意味著,當創建一個變量,會在內存中保留一些空間。

基于變量的數據類型,所述編譯器分配存儲器,并決定什么可以被存儲在保留存儲器。因此,通過分配不同的數據類型的變量,可以存儲整數,小數,或字符在這些變量。

變量聲明

Scala的變量聲明有不同的語法,它們可以被定義為值,即,常量或變量。下面是使用var關鍵字來定義一個變量的語法:

var myVar : String = "Foo"

在這里,myVar使用關鍵字var聲明。這意味著它是一個可以改變值的變量,被稱為可變變量。下面是使用val關鍵字來定義變量的語法:

val myVal : String = "Foo"

這里,myVal是使用關鍵字val聲明。這意味著,它是不能改變的變量,這是所謂的不可變變量。

變量數據類型:

變量類型在變量名后面指定,前在equals之前簽署。可以通過它的數據類型定義任何類型的Scala變量如下:

val or val VariableName : DataType [=? Initial Value]

如果不指定任何初始值變量,那么如下所示它是有效的:

var myVar :Int; val myVal :String;

變量類型推斷:

當分配一個初始值給一個變量,Scala編譯器可以計算出根據分配給它的值的變量類型。這就是所謂的變量類型推斷。因此,可以寫這些變量的聲明如下這樣:

var myVar = 10; val myVal = "Hello, Scala!";

在這里,默認情況下,myVar是int類型,將設為myVal為字符串類型變量。

多重任務:

Scala支持多任務。如果一個代碼塊或方法返回一個元組,該元組可被分配給一個val變量。 [注:元組在以后的章節中學習。]

val (myVar1: Int, myVar2: String) = Pair(40, "Foo")

類型推斷得到正確類型:

val (myVar1, myVar2) = Pair(40, "Foo")

變量類型:

Scala變量可以有三種不同的范圍,這取決于它們正在使用的地方。它們可以存在于字段,方法參數和局部變量。下面是關于每種類型的適用范圍的詳細信息:

字段:

字段是屬于一個對象的變量。該字段是從對象中的所有方法中訪問。字段也可以是具體取決于訪問修飾符字段與聲明的對象外訪問。對象字段既可以是可變的或不可變的類型,可以使用var 或 val兩種定義。

方法參數:

方法的參數是變量,其用于傳遞方法內的值在方法被調用時。方法參數被從方法唯一傳入,但傳遞的對象可從外面,如果從外面的方法有一個引用對象。方法參數始終是可變的并由val關鍵字定義。

局部變量:

局部變量是在方法內聲明的變量。局部變量只能在方法中訪問,但可以訪問創建方法的對象(如果從方法中返回它們)。局部變量既可以是可變的或不可變的類型,可以使用var或val兩個關鍵字定義。

from: http://www.yiibai.com/scala/scala_basic_syntax.html

總結

以上是生活随笔為你收集整理的Scala基础教程(二):数据类型、变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文精品无码中文字幕无码专区 | a级黄色小视频 | 中文字幕精品无码一区二区 | 欧美 唯美 清纯 偷拍 | 在线免费国产视频 | 亚洲色图影院 | 91私密视频 | 欧美视频在线一区二区三区 | 日韩精品久久久 | 成人网址在线观看 | 一区二区三区四区在线免费观看 | 青青草成人网 | 四虎成人在线观看 | 91玉足脚交白嫩脚丫 | 国产又粗又猛又爽又黄的视频一 | 成人动漫久久 | 在线能看的av网站 | 一区二区三区视频免费看 | 性欧美丰满熟妇xxxx性久久久 | 久久精品视频在线免费观看 | 日韩最新在线 | 国产一区伦理 | 亚洲激情视频网 | 日本一区二区高清视频 | 久草视频在线看 | 夜夜天堂 | 永久免费国产 | 在线播放国产精品 | 白丝av | 性久久久久久久久 | 伊人精品国产 | 中文字幕1区 | 精品久久久久久中文字幕人妻最新 | 波多野结衣一区二区三区中文字幕 | 国产专区一区二区 | 99国产精品久久久久99打野战 | 日韩精品色呦呦 | 精品国模一区二区三区欧美 | 中文字幕一区二区三区夫目前犯 | 天堂网av手机版 | 日韩在线视频在线观看 | 国内精品毛片 | 淫辱的世界(调教sm)by | 高潮又黄又刺激 | 妹子干综合| 亚洲aaa视频 | 五月天小说网 | 色偷偷成人 | 永久免费观看av | jizz欧美大片 | 欧美日韩国内 | 国产精品77| 男人都懂的网站 | 亚洲靠逼 | 色小说综合 | 91成人高清| 884aa四虎影成人精品一区 | 天堂网色 | 久久五月综合 | 8ppav| 97在线观视频免费观看 | 黄瓜视频污在线观看 | 爱情岛成人 | 青草草在线 | 人人看人人爽 | 欧美日韩中文字幕一区 | 精品国产成人av | 欧美中文字幕一区 | www.国产黄色 | 69xxx少妇按摩视频 | 亚洲国产av一区 | 97精品一区二区 | 中国国产bdsm紧缚捆绑 | 欧美日韩精品在线观看 | 夜夜撸网站 | 清清草视频 | 日本丰满少妇裸体自慰 | 国产a级免费视频 | 狠狠狠狠狠 | 国产一级一级片 | 国产精品无码成人片 | 国产一区二区三区精品视频 | 中国免费看的片 | 啪啪精品 | 日韩一区免费视频 | 日本理伦片午夜理伦片 | 亚洲色图图片区 | 五月激情四射网 | 欧美性大战久久久久久久 | 午夜寻花| 黄色综合网 | 日韩av中文字幕在线播放 | 亚洲成人免费看 | 日韩三级中文字幕 | 一区二区日韩 | 国产精品视频www | 蜜桃久久精品 | 国产五月| 岛国片在线播放 |