Daha çox

QGIS Sahə Kalkulyatorunda Elseif Şərti Bəyanatı istifadə edirsiniz?


QGIS Sahə Kalkulyatorunda (versiya 1.8.0) bir ELSEIF şərti bəyanat yazmağa çalışıram. İnternetdə tapdığım bir nümunəni istifadə etdim:

VAL <0 SONRA 'mənfi' OLDUĞU VAXT Val = 0 O zaman "neytral 'QƏBƏB' Müsbət 'SON

Bəyanatı aşağıdakı kimi dəyişdirdim:

"GRID_ID" = 1 SONRA 'tamamlandı' ELSEIF "GRID_ID" = 2 SONRA "davam edir 'ELSE' başlamadı 'END

Bu ifadə işləməyəcək, Çıxış önizləməsi ifadə edilən ifadənin etibarsız olduğunu bildirir. Daha çox məlumat verildi: Ayrıştırıcı Xətası: sintaksis xətası, gözlənilməz COLUMN_REF, WHEN və ya ELSE və ya END gözləyir

Kimsə bu xətanı görübsə, onu düzəltmək üçün nə etdiniz?


Dəyişdirdiyiniz bəyanatda bir neçə probleminiz var.

  • Ətrafdakı sitatların uyğunsuz istifadəsi"davam edir"
  • Sütun adları ətrafında sitatlara ehtiyac yoxdur.
  • "VAXT" olanda "ELSEIF" istifadə edirsiniz.

Aşağıdakılar hər üç məsələni həll etməlidir və 1.8.0 -da mənim üçün işləyir:

GRID_ID = 1 SONRA 'tamamlandı' VAXTINDA GRID_ID = 2 SONRA 'davam edir' Başqa 'başlamadı' SON

Konvensiyanın 'yalanın həqiqət olduğunu söyləməsinin' faydalı olmasının bir nümunəsi olaraq, "verilmiş ədəd 10 $ -dan kiçikdirsə, 100 $ -dan da kiçikdir" cümləsini düşünün. Bu açıq şəkildə doğru bir ifadədir. Buna görə də, 'hər hansı bir ədəd' sözlərini bir rəqəmlə əvəz etməklə ifadəni ixtisaslaşdırsaq, yenə də bunu doğru hesab etməliyik. Beləliklə, bu ixtisaslaşmış hallardan bəzilərinə baxaq.

$ 5 $ rəqəmini istifadə edərək, "5 $ 10 $ -dan kiçikdirsə, 100 $ -dan da kiçikdir" əsl ifadəni verir. Bu, "həqiqət həqiqəti nəzərdə tutur" nümunəsidir.

$ 500 $ rəqəmini istifadə edərək "500 $ 10 $ -dan kiçikdirsə, 100 $ -dan da kiçikdir" alırıq. Bu da 'yalan yanlış deməkdir' şəklində olan doğru bir ifadədir.

Nəhayət, 50 $ rəqəmini istifadə etsək, "50 $ 10 $ -dan kiçikdirsə, 100 $ -dan da kiçikdir" alırıq. Bu, 'yalan həqiqəti ifadə edir' nümunəsidir və yenə də doğru bir ifadə olmalıdır.

Deməli, 'yalan doğru olduğunu göstərir' konvensiyasının səbəbi, gözlənildiyi kimi $ x $ bütün dəyərləri üçün $ x & lt 10 rightarrow x & lt100 $ kimi ifadələrin doğru olmasıdır.


17 Cavablar 17

Birincisi daha yaxşıdır, çünki ikincisi xətaya meyllidir. Məsələn, bir şeyi düzəltmək üçün müvəqqəti olaraq kodu şərh etdiyinizi söyləyin:

Və ya tələsik kod əlavə edin:

Bu açıq -aşkar pisdir. Digər tərəfdən, birincisi bəzən çox sözlü hiss edir. Buna görə də, kifayət qədər qısa və sadə olsa, hər şeyi bir xəttə qoymağı üstün tuturam:

Bu, sintaktik səs-küyü azaldır, quruluşu əslində etdiyini edir və daha az xətaya meylli edir. Bu sintaksisin yalnız çox sadə, qısa şərtlər və ifadələr üçün istifadə edilməsi şərti ilə mükəmməl oxunaqlı olduğunu görürəm.

Həmişə təhlükəsiz olmaq üçün mötərizələrdən istifadə edirəm.

Bunu yazanda yaxşı olar, amma bilirsən ki, gələcəkdə kimsə gələcək və ətrafına mötərizə qoymadan başqa bir ifadə əlavə edəcək.

Mötərizəsiz versiyaya üstünlük verirəm mümkün olan yerdə.

Aşağıdakı şərh çox uzundur. Zəhmət olmasa mənə döz. Bu üsluba üstünlük verməyim üçün ciddi bir səbəb verəcəyəm. Niyə adi əks mübahisənin uyğun olmadığını düşündüyümü də izah edəcəyəm.