Scala içinde sözdizimsel şeker örnekleri nelerdir?
Scala içinde sözdizimsel şeker örnekleri nelerdir?
Sabit hepsi/çoğu tamamen semboller ve böylece sabit kavramı adını bilmeden aramak için olduğundan aramak için.
YAPILACAKLAR:
- Örtük dönüştürmeler
_
anonim işlevler için sözdizimi- Unutuyorum başka şeyler
CEVAP
Temel bilgiler:
a b
a.b
eşdeğerdira b c
:
b
sona erdiğinde hariça.b(c)
eşdeğer. Bu durumda,a b c
c.b(a)
eşdeğerdira(b)
isimsiz bir fonksiyon için aşağıdaki tanımlar aynıdır, Bu yüzdena.apply(b)
eşdeğerdir: square1 = val (x: Int) =>xx square2 = new Function1[İnt,İnt] val { def(x: İnt) Uygula = xx }Aslında
square1.apply(y)
aradığınızsquare1
Function1
özelliği tarafından belirtildiği gibi olmalıdır;square1(y)
(ya daFunction2
, vb...) çağrılırkena(b) = c
a.update(b,c)
,a(b,c) = d
a.update(b,c,d)
ve benzeri eşdeğerdir Aynı şekilde eşdeğerdir.a.b = c
a.b_=(c)
eşdeğerdir.val
/var
x
Sınıf/Nesnesi oluşturduğunuzda, Scala yöntemlerix
x_=
oluşturur. Bu kendinizi tanımlayabilirsiniz, ama eğery_=
tanımlayıngerekiry
tanımlamak: örneğin bir derlemescala> val b = new Object{ def set_=(a: Int) = println(a) } b: java.lang.Object{def set_=(Int): Unit} = $anon$1@17e4cec scala> b.set = 5 <console>:6: error: value set is not a member of java.lang.Object{def set_=(Int): Unit} b.set = 5 ^ scala> val c = new Object{ def set = 0 ; def set_=(a:Int) = println(a) } c: java.lang.Object{def set: Int; def set_=(Int): Unit} = $anon$1@95a253 scala> c.set = 5 5
-a
a
,~a
!a
a.unary_-
Aynı şekilde karşılık gelir<operator>
özel karakterler bazı ayarlandığıa <operator>= b
,,a = a <operator> b
eşdeğerdirsadecea
<operator>=
yöntemi yok eğer, örneğin,class test(val x:Int) { def %%(y: Int) = new test(x*y) } var a = new test(10) a.x // 10 a %%= 5 //Equivalent to a = a %% 5 a.x // 50
Nasıl Scala içinde bir bayt dizisi ola...
Scala katman seçenekleri arasındaki fa...
C başvurular sadece sözdizimsel şeker?...
Bir ADT veri kurucular ile ilişkilendi...
Scala yazın Lambda nedir ve faydaları ...