欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) Scala學(xué)習(xí)(三)

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) Scala學(xué)習(xí)(三)

http://yzkb.51969.com/

2.8 浮點(diǎn)類型(Float、Double)

Scala的浮點(diǎn)類型可以表示一個(gè)小數(shù),比如123.4f,7.8,0.12等等。 1)浮點(diǎn)型分類 數(shù)據(jù)類型 描述 Float [4] 32 位, IEEE 754標(biāo)準(zhǔn)的單精度浮點(diǎn)數(shù) Double [8] 64 位 IEEE 754標(biāo)準(zhǔn)的雙精度浮點(diǎn)數(shù) 2)案例實(shí)操 Scala的浮點(diǎn)型常量默認(rèn)為Double型,聲明Float型常量,須后加‘f’或‘F’。

object Test03_Type{

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

// 浮點(diǎn)數(shù)介紹

// 默認(rèn)使用double

val d: Double = 3.14

// 如果使用float 在末尾添加f

val fl = 3.14f

// 浮點(diǎn)數(shù)計(jì)算有誤差

println(0.1 / 3.3)

}

}

//運(yùn)行的結(jié)果

0.030303030303030307

2.9 字符類型(Char)

1)基本說明 字符類型可以表示單個(gè)字符,字符類型是Char。 2)案例實(shí)操 (1)字符常量是用單引號 ’ ’ 括起來的單個(gè)字符。 (2)\t :一個(gè)制表位,實(shí)現(xiàn)對齊的功能 (3)\n :換行符 (4)\ :表示 (5)" :表示"

object Test03_Type{

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

// (1)字符常量是用單引號 ' ' 括起來的單個(gè)字符。

val c1: Char = 'a'

val c2: Char = 65535

// (2)\t :一個(gè)制表位,實(shí)現(xiàn)對齊的功能

val c3: Char = '\t'

// (3)\n :換行符

val c4: Char = '\n'

println(c3 + 0)

println(c4 + 0)

// (4)\\ :表示\

val c5: Char = '\\'

println(c5 + 0)

// (5)\" :表示"

val c6: Char = '\"'

println(c6 + 0)

}

}

2.10 布爾類型:Boolean

1)基本說明 (1)布爾類型也叫Boolean類型,Booolean類型數(shù)據(jù)只允許取值true和false (2)boolean類型占1個(gè)字節(jié)。 2)案例實(shí)操

object Test03_Type{

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

val bo1: Boolean = true

val bo2: Boolean = false

}

}

2.11 Unit類型、Null類型和Nothing類型(重點(diǎn))

1)基本說明 數(shù)據(jù)類型 描述 Unit 表示無值,和其他語言中void等同。用作不返回任何結(jié)果的方法的結(jié)果類型。Unit只有一個(gè)實(shí)例值,寫成()。 Null null , Null 類型只有一個(gè)實(shí)例值null Nothing Nothing類型在Scala的類層級最低端;它是任何其他類型的子類型。 當(dāng)一個(gè)函數(shù),我們確定沒有正常的返回值,可以用Nothing來指定返回類型,這樣有一個(gè)好處,就是我們可以把返回的值(異常)賦給其它的函數(shù)或者變量(兼容性) 2)案例實(shí)操 (1)Unit類型用來標(biāo)識過程,也就是沒有明確返回值的函數(shù)。 由此可見,Unit類似于Java里的void。Unit只有一個(gè)實(shí)例——( ),這個(gè)實(shí)例也沒有實(shí)質(zhì)意義。

object Test03_Type{

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

// unit

val unit1: Unit = {

10

println("1")

}

println(unit1)

// 如果標(biāo)記對象的類型是unit的話 后面有返回值也沒法接收

// unit雖然是數(shù)值類型 但是可以接收引用數(shù)據(jù)類型 因?yàn)槎际潜硎静唤邮辗祷刂?/p>

val i3: Unit = "aa"

println(i3)

}

}

(2)Null類只有一個(gè)實(shí)例對象,Null類似于Java中的null引用。Null可以賦值給任意引用類型(AnyRef),但是不能賦值給值類型(AnyVal)。

object Test03_Type {

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

// scala當(dāng)中使用的字符串就是java中的string

val aa: String = "aa"

// null

var aa1: String = "aa"

aa1 = "bb"

aa1 = null

if (aa1 != null) {

val strings: Array[String] = aa1.split(",")

}

// 值類型不能等于null,idea不會識別報(bào)錯(cuò) 編譯器會報(bào)錯(cuò)

var i4 = 10

// i4 = null

}

}

(3)Nothing,可以作為沒有正常返回值的方法的返回類型,非常直觀的告訴你這個(gè)方法不會正常返回,而且由于Nothing是其他任意類型的子類,他還能跟要求返回值的方法兼容。

object Test03_Type {

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

val value: Nothing = {

println("hello")

1 + 1

throw new RuntimeException()

}

}

}

2.12 類型轉(zhuǎn)換

Java的隱式轉(zhuǎn)換規(guī)則:

public class TestCast {

public static void main(String[] args) {

byte n = 23;

test(n);

}

public static void test(byte b) {

System.out.println("bbbb");

}

public static void test(short b) {

System.out.println("ssss");

}

public static void test(char b) {

System.out.println("cccc");

}

public static void test(int b) {

System.out.println("iiii");

}

}

2.12.1 數(shù)值類型自動轉(zhuǎn)換

當(dāng)Scala程序在進(jìn)行賦值或者運(yùn)算時(shí),精度小的類型自動轉(zhuǎn)換為精度大的數(shù)值類型,這個(gè)就是自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換)。數(shù)據(jù)類型按精度(容量)大小排序?yàn)椋? 1)基本說明 (1)自動提升原則:有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成精度大的那種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。 (2)把精度大的數(shù)值類型賦值給精度小的數(shù)值類型時(shí),就會報(bào)錯(cuò),反之就會進(jìn)行自動類型轉(zhuǎn)換。 (3)(byte,short)和char之間不會相互自動轉(zhuǎn)換。 (4)byte,short,char他們?nèi)呖梢杂?jì)算,在計(jì)算時(shí)首先轉(zhuǎn)換為int類型。 2)案例實(shí)操

object Test04_TypeCast {

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

// (1)自動提升原則:有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),

// 系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成精度大的那種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。

val fl: Float = 1 + 1L + 3.14f

val d: Double = 1 + 1L + 3.14f + 3.14

// (2)把精度大的數(shù)值類型賦值給精度小的數(shù)值類型時(shí),就會報(bào)錯(cuò),反之就會進(jìn)行自動類型轉(zhuǎn)換。

val i = 10

val b: Double = i

// (3)(byte,short)和char之間不會相互自動轉(zhuǎn)換。

// 因?yàn)閎yte和short是有符號的數(shù)值,而char是無符號的

val b1: Byte = 10

val c1: Char = 20

// (4)byte,short,char他們?nèi)呖梢杂?jì)算,在計(jì)算時(shí)首先轉(zhuǎn)換為int類型。

val b2: Byte = 20

// val i1: Byte = b1 + b2

val i1: Int = 1100000000

val i2: Int = 1200000000

// 超出范圍的int值計(jì)算會造成結(jié)果錯(cuò)誤

val i3: Int = i1 + i2

println(i3)

}

}

注意:Scala還提供了非常強(qiáng)大的隱式轉(zhuǎn)換機(jī)制(隱式函數(shù),隱式類等)

2.12.2 強(qiáng)制類型轉(zhuǎn)換

1)基本說明 自動類型轉(zhuǎn)換的逆過程,將精度大的數(shù)值類型轉(zhuǎn)換為精度小的數(shù)值類型。使用時(shí)要加上強(qiáng)制轉(zhuǎn)函數(shù),但可能造成精度降低或溢出,格外要注意。 Java : int num = (int)2.5 Scala : var num : Int = 2.7.toInt 2)案例實(shí)操 (1)將數(shù)據(jù)由高精度轉(zhuǎn)換為低精度,就需要使用到強(qiáng)制轉(zhuǎn)換。 (2)強(qiáng)轉(zhuǎn)符號只針對于最近的操作數(shù)有效,往往會使用小括號提升優(yōu)先級。

object Test04_TypeCast {

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

// 強(qiáng)制類型轉(zhuǎn)換

val d1 = 2.999

// (1)將數(shù)據(jù)由高精度轉(zhuǎn)換為低精度,就需要使用到強(qiáng)制轉(zhuǎn)換

println((d1 + 0.5).toInt)

// (2)強(qiáng)轉(zhuǎn)符號只針對于最近的操作數(shù)有效,往往會使用小括號提升優(yōu)先級

println((10 * 3.5 + 6 * 1.5).toInt)

}

}

2.12.3 數(shù)值類型和String類型間轉(zhuǎn)換

1)基本說明 在程序開發(fā)中,我們經(jīng)常需要將基本數(shù)值類型轉(zhuǎn)成String類型。或者將String類型轉(zhuǎn)成基本數(shù)值類型。 2)案例實(shí)操 (1)基本類型轉(zhuǎn)String類型(語法:將基本類型的值+“” 即可)。 (2)String類型轉(zhuǎn)基本數(shù)值類型(語法:s1.toInt、s1.toFloat、s1.toDouble、s1.toByte、s1.toLong、s1.toShort)。

object Test04_TypeCast {

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

// (1)基本類型轉(zhuǎn)String類型(語法:將基本類型的值+"" 即可)

val string: String = 10.0.toString

println(string)

val str: String = 1 + ""

// (2)String類型轉(zhuǎn)基本數(shù)值類型(語法:s1.toInt、s1.toFloat、s1.toDouble、s1.toByte、s1.toLong、s1.toShort)

val double: Double = "3.14".toDouble

println(double + 1)

println(double.toInt)

// 不能直接將小數(shù)類型的字符串轉(zhuǎn)換為整數(shù) 需要先轉(zhuǎn)換為double再轉(zhuǎn)換int

// println("3.14".toInt)

// 標(biāo)記為f的float數(shù)能夠識別

// println("12.6f".toFloat)

}

}

擴(kuò)展面試題數(shù)值存儲機(jī)制介紹:

object Test04_TypeCast {

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

// 將int值130強(qiáng)轉(zhuǎn)為byte 值為多少

// 0000 0000 ..16.. 1000 0010 => 表示int的130

val i4 = 130

// 1000 0010

println(i4.toByte)

}

}

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) Scala學(xué)習(xí)(三)

http://yzkb.51969.com/

精彩內(nèi)容

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19056465.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄