Scala, aynı bellek izi ve hassasiyetle Java üzerindeki bütün veri tiplerine sahiptir. Aşağıdaki tablo, Scala üzerinde kullanılabilir bütün veri tipleri hakkında detaylı açıklamalar vermektedir:
Veri Tipi | Açıklama |
---|---|
Byte | 8 bit signed value. Range from -128 to 127 |
Short | 16 bit signed value. Range -32768 to 32767 |
Int | 32 bit signed value. Range -2147483648 to 2147483647 |
Long | 64 bit signed value. -9223372036854775808 to 9223372036854775807 |
Float | 32 bit IEEE 754 single-precision float |
Double | 64 bit IEEE 754 double-precision float |
Char | 16 bit unsigned Unicode character. Range from U+0000 to U+FFFF |
String | A sequence of Chars |
Boolean | Either the literal true or the literal false |
Unit | Corresponds to no value |
Null | null or empty reference |
Nothing | The subtype of every other type; includes no values |
Any | The supertype of any type; any object is of type Any |
AnyRef | The supertype of any reference type |
Yukarıda listelenen bütün veri tipleri objedir. Javadaki gibi ilkel tipler yoktur. Bu da demek oluyor ki metotları Int, Long vb. üzerinden çağırabilirsiniz.
Scalanın tipler için kullandığı kural basit ve sezgiseldir. Bu bölüm tüm temel Scala tiplerini açıklamaktadır.
Tamsayılar genellikle Int veya son ek olarak L veya l aldıklarında Long tipinde olurlar. Aşağıdakiler bazı tamsayı tipine örnektir:
0
035
21
0xFFFFFFFF
0777L
Ondalıklı sayılar F veya f son ekini alarak Float veya aksi halde Double tipinde olurlar. Aşağıdakiler bazı ondalıklı sayılara örnektir:
0.0
1e30f
3.14159f
1.0e100
.1
Boolean; değer kümesi true veya false olan tiptir.
Semboller de ‘x ifadesi scala.Symbol(“x”) ifadesinin kısaltmasıdır. Sembol aşağıdaki gibi gibi tanımlanan Case Sınıfıdır.
package scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
Bir karakter tırnak işaretlerinin içine yazılan karakterdir. Karakterler, Unicode olarak ters eğik çizgi() ile tanımlanabilir. Aşağıdakiler bazı karakter tipine örnektir:
'a'
'\u0041'
'\n'
'\t'
Dizgi, karakterler dizisini ifade eder ve çift tırnak arasına yazılır. Karakterde olduğu gibi dizgide de bazı karakterleri Unicode olarak ters eğik çizgi ile tanımlayabilirsiniz. Aşağıdakiler bazı dizgi tipine örnektir:
"Hello,\nWorld!"
"This string contains a \" character."
Çok satırlı dizgi üç tane çift tırnak arasına yazılmış(“”"”….”””) karakter dizisidir. Karakterler yazdırılabilir olmak zorunda değiller, yeni satır geçirme veya diğer kontrol karakterleri de kullanılabilir. Aşağıdaki çok satırlı dizgiye örnektir:
"""the present string
spans three
lines."""
Null değeri Scalanın bir tipidir. Null böylece her referans tipiyle uyumludur. Null ifadesi referans olarak gösterildiği değere ‘boş’ anlamı kazandırır.
Aşağıdaki gösterilen ifadeler dize(string) ve karakterler(character) içinde tanımlanmış olan özel ifadelerdir.
İfade(Es. Seqs.) | Unicode | Açıklama |
---|---|---|
\b | \u0008 | backspace (BS) |
\t | \u0009 | Yatay TAB (HT) |
\n | \u000c | Alt satıra geç |
\f | \u000c | Geçerli sayfanın başına git (FF) |
\r | \u000d | Geçerli satırın başına git (CR) |
" | \u0022 | Çift tırnak “ |
' | \u0027 | Tek tırnak ’ |
\ | \u005c | Ters Eğik Çizgi \ |
Aşağıdaki örnekte ‘'(escape sequence) ifadesinin kullanımı gösterilmiştir:
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
Üstteki kodlar derlenip çalıştırıldıktan sonra, aşağıdaki sonucu verecektir:
Hello World