Ne'In arasındaki fark `1L` ve `1`?
Ben sık sık 1L
(ya da 2L
, 3L
vb.) R kodu görünür sembolü gördüm. Fark 1L
1
arasında ne? 1==1L
TRUE
olarak değerlendirir. Neden 1L
R kod kullanılır?
CEVAP
, @@Brian açıkladı Jamesne3 l lik anlamına gelir. Amanedenonu kullanır mıydın?
Çoğu zaman hiç fark etmez - ama bazen kodunuzu almak için kullanabilirsinizdaha hızlı koşmakve tüketirdaha az bellek. ("") Sayısal vektör elemanı başına 8 bayt kullanır. bir çift Tamsayı bir vektör elemanı başına sadece 4 bayt kullanır. Daha büyük vektörler için harcanan bellek ve CPU için wade için daha az genellikle daha hızlı).
Çoğunlukla bu endeksleri ile çalışırken de geçerlidir. Burada bir tamsayı vektör ekleme 1 çift bir vektör haline döndüğü bir örnek:
x <- 1:100
typeof(x) # integer
y <- x 1
typeof(y) # double, twice the memory size
object.size(y) # 840 bytes (on win64)
z <- x 1L
typeof(z) # still integer
object.size(z) # 440 bytes (on win64)
...ama aynı zamanda aşırı tamsayılar ile çalışmak tehlikeli olabilir unutmayın:
1e9L * 2L # Works fine; fast lean and mean!
1e9L * 4L # Ooops, overflow!
...ve @Gavin çekti, tam sayı aralığı kabaca-2e9 2e9.
Bir uyarı olsa da bu akım R sürümü (2.13) için geçerlidir. R bir noktada bu uzunluk ^ vektörler sağlayabilir. (64-bit tamsayı tatlı olurdu, değişebilir 2e9). Güvenli olması için, en büyük tamsayı değeri (ve en az o inkar) ne zaman ihtiyacın olursa .Machine$integer.max
kullanmalısınız.
'Kapatıyorsa ve Basışı arasındaki...
AngularJS : açısal yol arasındaki Fark...
'yöntem arasındaki fark ne ve seç...
Arasındaki fark doseq ve Clojure için...
Belge tabanlı arasındaki fark ve Anaht...