Hatalar, hatalar, sorular - sayfa 2461
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bu fikri detaylandırabilir misiniz?
Benim subjektif görüşüm aşağıdadır, bir yerde yanılıyorsam seve seve yardımcı olurum.
StringLen, dizedeki ilk NULL karaktere (0x0000) kadar O(n) çalıştırırdı, şimdi O(1) çalıştırıyor.
Dizenin uzunluğu her zaman StringSetCharacter(str, pos, 0x00) aracılığıyla kesilebilir, ancak bir nedenden dolayı StringSetLength'i sunarlar.
Büyük olasılıkla, dizelerle çalışırken kodu hızlandırma sorununu çözdüler.
Hızlandırma görevi çözüldü, ancak işlevselliğin yarısının artık dizedeki NULL karakterlerle çalıştığı ve diğerinin çalışmadığı gerçeği - kimsenin umurunda değil.
Sonuç:
Benim subjektif görüşüm aşağıdadır, bir yerde yanılıyorsam seve seve yardımcı olurum.
StringLen, dizedeki ilk NULL karaktere (0x0000) kadar O(n) çalıştırırdı, şimdi O(1) çalıştırıyor.
Dizenin uzunluğu her zaman StringSetCharacter(str, pos, 0x00) aracılığıyla kesilebilir, ancak bir nedenden dolayı StringSetLength'i sunarlar.
Büyük olasılıkla, dizelerle çalışırken kodu hızlandırma sorununu çözdüler.
Hızlandırma görevi çözüldü, ancak işlevselliğin yarısının artık dizedeki NULL karakterlerle çalıştığı ve diğerinin çalışmadığı gerçeği - kimsenin umurunda değil.
Sonuç:
StringLen, dizedeki ilk NULL karaktere (0x0000) kadar O(n) çalıştırırdı, şimdi O(1) çalıştırıyor
Geliştiriciler:
Lütfen varsayılan olarak atama operatörü (kopyalama oluşturucu) için zorunlu kod oluşturma özelliğini ekleyin:
Bir şey bir şekilde zor. Varsayılan kurucu ile benzer şekilde daha kolay:
1) herhangi bir atama operatörü, varsayılan atama operatörünü geçersiz kılar
2) herhangi bir kopya ifadesi, varsayılan kopya ifadesini geçersiz kılar
Hataları kısmen düzelttik ... neden olmasın!?
MQL'nin NULL karakterli dizelerle çalışırken tutarlı bir fikri olmadığı için sorun budur.
Örneğin, StringToShortArray, bir dizedeki NULL karakterleri destekler ve onun ters işlevi ShortArrayToString artık mevcut değildir...
Sonuç olarak, belirli sorunları çözmekten çok, hataları yakalamak ve geçici çözümler aramak için daha fazla zaman harcanır.
Bir şey bir şekilde zor. Varsayılan kurucu ile benzer şekilde daha kolay:
1) herhangi bir atama operatörü, varsayılan atama operatörünü geçersiz kılar
2) herhangi bir kopya ifadesi, varsayılan kopya ifadesini geçersiz kılar
Bir iptale ihtiyacım yok, tam tersine zorunlu bir nesile ihtiyacım var.
MQL'de karmaşık türlerin derin kopyalanması için herhangi bir işlevsellik yoktur ve bunlar varsayılan olarak atama operatöründe ve kopya oluşturucuda uygulanır.
MQL'nin NULL karakterli dizelerle çalışırken tutarlı bir fikri olmadığı için sorun budur.
Örneğin, StringToShortArray, bir dizedeki NULL karakterleri destekler ve onun ters işlevi ShortArrayToString artık mevcut değildir...
Bir yandan, evet, diğer yandan, bu, Belgelerde açıkça belirtilmiştir: "ya terminal 0 karşılanana kadar"
Bir yandan, evet, diğer yandan bu, Belgelerde açıkça belirtilmiştir (ki değil)
Ve aynısı StringToShortArray içinde yazılmıştır:
Ancak bu, bir dizedeki NULL karakterleri yeterince işlemesini engellemez.