Java ile yazılmış şu sınıfı düşünün ona.Scala sınıf üyeleri ve yapıcı parametreleri adı çatışması
Scala'da buna benzer bir şey yazmak istiyorum.
class NonNegativeDouble(value: Double) {
def value = Math.abs(value)
}
Ancak derleyici şikayet: İlk başta, güvenilir hatası: aşırı yöntem değeri ihtiyaçları tip
Açıkçası derleyici yöntemi tanımlanan için ifade Math.abs(value)
içindeki ifade value
gelir düşünmektedir neden . Bu nedenle, tanımlanan yöntem tekrarlayıcıdır, bu yüzden dönüş türünü belirtmem gerekiyor. Bu yüzden, yazdığım kod yapmamı beklediğim şeyi yapmıyor: value
'un içinde value
yapıcı parametresine başvurmasını ve tanımlanmakta olan yönteme başvurmamasını istedim. Derleyici, Math.abs(this.value)
için örtülü olarak eklenmiş gibi. Oluşturucu parametresine val
veya var
(veya private ...
türevleri) eklemek yardımcı olmuyor gibi görünmektedir.
Yani, sorum şu: Ben yapıcı parametre olarak aynı adı taşıyan bir özellik tanımlamak, ama belki farklı bir değer olabilir? Öyleyse nasıl? Değilse neden?
Teşekkürler!
Bir kurucu, bir durum sınıfı veya val veya var ile ek açıklama yapılmadıkça bir özellik yapılmaz. Yine de sınıf tanımının içinde herhangi bir yerde kullanılabilir. –
Bu gibi durumlarda yapıcı parametrelerinin herhangi bir adlandırma kuralı var mı? –
@Bruno - Birkaç adlandırma kuralı vardır; Ben şahsen 0 adının eklendiğini beğendim, çünkü bu sıfır bir başlangıç noktası anlamına gelir ve bu kısadır. (Altçizgiler bazen önceden hazırlanır veya eklenir, fakat ben şahsen kendimi etrafta yatan bol altçizgi olduğunu hissediyorum.) –