Başka bir referans sınıfında nesne olarak kullanacağım bir referans sınıfım var. Örnek: Ben comment işaretleri sonra ilk satırı çağırmakR: Referans Sınıfı Referans Sınıfı Alanlar Referans Sınıfı
class_1 <- setRefClass(Class = "class_1"
, fields = list(nickname = "character", version = "character")
, methods = list(
initializer = function(nickname, version) {
nickname <<- nickname
version <<- version
}
)
)
class_2 <- setRefClass(Class = "class_2"
, fields = c(version = "character"
, nickname = "character"
, class_1_item = "class_1")
, methods = list(
initializer = function(class_2_nickname = "B", class_2_version = "V2") {
class_1_item <<- class_1$new(class_2_nickname, class_1_version)
nickname <<- class_2_nickname
version <<- class_2_version
}
)
)
#######
class_2_obj <- class_2$new(nickname = "A", version = "V1")
class_1_obj <- class_1$new(nickname = "A", version = "V1")
class_2_obj2 <- class_2$new()
, bunun içinde bir class_1 nesne ile class_2 nesnesi oluşturur, ancak parçası olarak adlandırılan yapıcısını sahip nesne class_1_item alanları başlatır asla ilk satırın Ancak, kurucuyu doğrudan satır 2'de (sınıf 2 yapıcısının dışında) aradığımda, bu alanları çok iyi başlatır. Son olarak, 3 satırındaki kurucuyu argüman olmadan çağırdığımda, varsayılan argümanları bile almaz ve her şeyi boş bırakır.
R sınıfları hakkında temel bir şey olduğunu hissediyorum, bu onları almadığım C/Python/Java sınıflarından tamamen farklı kılıyor. Atama işlecini $ setRefClass() $ ile kullandığımda "class_1" nesnesinin bir nesne olarak başvurduğunu anlamıyorum. Ayrıca, "< < -" operatörünün bu bağlamda "< -" operatörüne göre kullanılması için hangi durumlarda kullanıldığını anlamıyorum.
Neyi eksik?
Teşekkürler! Bu bir yazım hatası olmalı, o zaman - $ intializer $ $ $ initialize $ olmalıdır. – ecksc