Ders 4 - Scala Veri Tipleri

4 Haz 2016 · 4 dk okuma süresi

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.

Scala Temel Tipler (Basic Literals):

Scalanın tipler için kullandığı kural basit ve sezgiseldir. Bu bölüm tüm temel Scala tiplerini açıklamaktadır.

Tamsayı (Integer Literals)

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 (Floating Point Literals)

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(0-1) (Boolean Literals)

Boolean; değer kümesi true veya false olan tiptir.

Sembol (Symbol Literals)

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
}

Karakter (Character Literals)

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 (String Literals)

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ı Dizgiler (Multi-Line Strings)

Ç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 İfadesi (The Null Value)

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.

\ İfadesinin Kullanımı (Escape Sequences):

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