V = (v == 0? 1: 0) yazmaq üçün daha yaxşı bir yol varmı?

0 və 1 arasında bir dəyişikliyə keçmək istəyirik. 0 olarsa, onu 1-ə təyin etmək istəyirəm, əksinə, əgər 1, mən onu 0-ə təyin etmək istəyirəm.

Bu, belə bir təməl əməliyyatdır ki, bunu tez-tez yazmalıyam ki, bunu etmək üçün ən qısa və maksimum yolları araşdırmaq istərdim. İşdə indiyə qədər mənim ən yaxşım:

 v = (v == 0 ? 1 : 0); 

Bunu yaxşılaşdıra bilərsinizmi?

Düzəliş: sual - yuxarıda göstərilən operatoru ən kiçik simvolda necə yazmaq olar? - bu, "əsl sual deyil"? Golf golf kursu ilə məşqlər üçün nəzərdə tutulmadı, baxmayaraq ki, golf kimi yaxınlaşan insanlardan bəzi maraqlı cavablar çıxdı. Golfun konstruktiv və düşüncəli şəkildə istifadə edildiyini görmək çox xoşdur.

428
02 авг. Ollie Şüşə dəsti 02 aug. 2011-08-02 14:22 '11 at 14:22 2011-08-02 14:22
@ 30 cavab

Sadəcə istifadə edə bilərsiniz:

 v = 1 - v; 

Bu, əlbəttə, dəyişənin doğru bir şəkildə başlandığını nəzərdə tutur, yəni o, yalnız 0 və ya 1-ə malikdir.

Daha qısa bir üsul, lakin daha az ümumi operatoru istifadə edir:

 v ^= 1; 

Düzenle:

Aydın olun; Mən bu məsələni heç bir gizli tövsiyələrdən istifadə etmədən, məsələn, operatorların yan təsirləri olmadan bir tapşırıq yerinə yetirmək üçün qısa bir yol tapmaq üçün heç bir golf kodu kimi müraciət etməmişəm.

654
02 авг. cavab Guffa 02 aug verilir . 2011-08-02 14:33 '11 at 14:33 2011-08-02 14:33

0 false olduğundan 1 true .

 v = (v ? 0 : 1); 

Nömrələr əvəzinə truefalse istifadə etməkdən xoşbəxt olursunuz

border=0
 v = !v; 

və ya nömrələr olmalıdırsa:

 v = +!v;  
330
02 авг. cavab Quentin 02 aug verilir . 2011-08-02 14:26 '11 at 2:26 pm 2011-08-02 14:26

v = (v + 1) % 2 və daha çox dəyərlər ilə təkrarlamaq lazımdırsa, sadəcə 2 (n + 1) dəyişin. Gəlin 0,1,2 dövrü keçirməyinizi xahiş edirik, yalnız v = (v + 1) % 3 .

197
02 авг. Cavab Prusse 02 avqustda verilir . 2011-08-02 14:37 '11 saat 02:37 'da 2011-08-02 14:37

Bunun üçün bir funksiya yaza və onu aşağıdakı kimi istifadə edə bilərsiniz:

v = inv(v)

75
02 авг. Cavab Daniel 02 avqustda verilir . 2011-08-02 14:25 '11 'də saat 14:25' da 2011-08-02 14:25

1-dən başqa heç bir fürsətə ehtiyacınız olmayacaqsa:

 v = v ? 0 : 1; 

Yuxarıda göstərilən hallarda v, 0, false, undefined və ya null olduğu halda, v sona çatacaq. Ehtiyatlı olun, bu yanaşma ilə istifadə edin - v "salam dünyası" olsa da, 0 bərabər olacaq.

50
02 авг. cavab Brian 02 aug verilir . 2011-08-02 14:26 '11 at 2:26 pm 2011-08-02 14:26

v = 1 - v , və ya v ^= 1 və ya v= +!v tipli xətlər bu işi yerinə yetirəcək, amma hacks deyəcəyəm. Bu gözəl kod xətləri deyil, nəzərdə tutulan təsiri əldə etmək üçün ucuz fəndlər deyil. 1 - v "0 ilə 1 arasında keçid" bağlamır. Bu kodunuzu daha az ifadəli edir və başqa bir geliştiricinin kodunuzu analiz etməsi üçün bir yer (kiçik bir olsa da) təqdim edir.

Bunun əvəzinə, v = toggle(v) kimi bir funksiya dərhal niyyətini ötürür.

43
02 авг. Cavab Ray 02 avqustda verilir. 2011-08-02 17:17 '11 at 17:17 2011-08-02 17:17

(Dürüstlük və riyazi bütövlüyü - bu "cavab" üzərində səslərin sayını verdiyini - mənə bu cavabı redaktə etdi.) Qısa bir söz kimi nəzərdə tutulduğundan, mümkün qədər uzun müddət saxlandım, çünki dərin bir şey deyil, hər hansı bir izahat Ancaq bununla yanaşı, şərhlər anlaşılmazlıqlardan qaçmaq üçün aydın olmalıdır.

Mənim orijinal cavabım:

Spesifikasiyanın bu hissəsinin mətni:

0 olarsa, mən onu 1-ə təyin etmək istəyirəm, əksinə onu 0-ə təyin edim.

ən doğru həlli deməkdir:

 v = dirac_delta(0,v) 

Birincisi, etiraf: Mən delta funksiyalarını qarışdırdım. Kronecker deltası bir az daha uyğun olardı, amma mən istədiyim qədər deyil, bu domendən müstəqil olan (Kronecker deltası əsasən bütün ədədlər üçün istifadə edilmişdir). Amma mən, həqiqətən, delta funksiyasından heç istifadə etməli deyiləm, dedim:

 v = characteristic_function({0},v) 

Mənə aydınlıq verin. X funksiyasını (X, Y, f) üçlü (x, y, f) olduğu xatırlayırıq ki, X və Y (sırasıyla bir bölgə və kodist kimi istinad edilir) və f hər bir elementə Y elementini təyin edən bir qaydadır. Biz tez-tez üçlü (X, Y f) f kimi: X rightarrow; Y. X-nin bir alt kəlməsi üçün A deyilir ki, x # 39; funksiyası olan xarakterik bir funksiya mövcuddur; A : X sağarrow; {0,1} (həmçinin, nopf və ya Ropf kimi daha böyük bir kodenin funksiyası kimi baxıla bilər); Bu funksiya qayda ilə müəyyən edilir:

chi; A (x) = 1 əgər x in; A və və Çi; A (x) = 0 əgər x notin; A.

Əgər həqiqət masalarını sevirsinizsə, bu "X elementinin X-nin alt kəmiyyətinin elementidir?" Sualının həqiqət masasıdır.

Beləliklə, bu tərifdən aydın olur ki, xarakterik funksiya burada lazım olanıdır və X 0 və A = {0} olan bəzi böyük setdir. Bu yazmalıyam.

Delta funksiyaları üçün. Bunun üçün inteqrasiya haqqında bilmək lazımdır. Ya bunu artıq bilirsiniz, yoxsa yox. Əgər yoxsa, buradakı bir şey deyə bilmərəm, nəzəriyyənin incəlikləri haqqında sizə xəbər verəcəyəm, amma təklifin xülasəsini verə bilərəm. X üzərində edilən bir tədbir əsasən "ortalama ortalamalar üçün nə lazımdır". Yəni, əgər bizdə X və ölçüsü var? bu dəstdə X və sağarrow funksiyaları sinfi var; Ropf;, ölçülür funksiyaları adlandıran, ifadəsi int; X fd mu; mənada və bəzi qeyri-müəyyən mənada X-də "orta" bir dəyərə malikdir.

Bir dəstdə tədbir görsəniz, bu setin alt kümeleri üçün "ölçü" təyin edə bilərsiniz. Bu, onun xarakterik funksiyasının bir hissəsinin ayrılmasını təyin etməklə həyata keçirilir (ölçülür funksiyadır). Bu sonsuz ola bilər və ya müəyyən edilə bilməz (ikisi bir az fərqlidir).

Bir çox tədbir var, amma burada iki vacibdir. Onlardan biri real xətt üzrə standart bir tədbirdir və Ropf; Bu tədbir üçün int; Ropf; fd mu; bu, məktəbdə tədris olunan şeydir (məktəbdə məktəblər hələ də tədris olunurmu?): kiçik düzbucaqları yekunlaşdırır və kiçik və daha kiçik bir eni götürür. Bu tədbirdə, intervalın ölçüləri onun genişliyidir. Nöqtə ölçüsü 0'dır.

Hər hansı bir dəstə üzərində işləyən digər bir əhəmiyyətli tədbirə bir nöqtə ölçüsü deyilir. Funksiyanın ayrılmaz hissəsi onun dəyərlərinin məbləğidir :

int; X fd mu; = sum; x in; X f (x)

Bu tədbir hər bir qrupa bir sıra tədbirlər verir. Bu, bir alt kümədə öz-özünə sonlu olduğunda və yalnız sonlu bir tədbirin olduğu anlamına gəlir. Və çox az funksiyalı sonlu integral var. Bir funksiyanın sonlu integral olduğu təqdirdə, yalnız sayılacaq nöqtələrdən sıfır olmamalıdır. Beləliklə, ehtimal ki, bildiyiniz funksiyaların böyük əksəriyyəti bu tədbir üçün son dərəcə bir ayrılmaz vəziyyətə malik deyil.

Və indi delta funksiyaları. Çox geniş tərifə baxaq. Ölçülmüş bir məkanımız var (X, mu;); X. Delta funksiyasını "funksiyası" a kimi müəyyən edirik : X rightarrow; Ropf; (x) = 0 əgər x ne ne; a və int; X ? bir d mu; = 1.

Bununla bağlı ən vacib fakt bu: bu delta funksiyası funksiya olmamalıdır . Düzgün deyil: mən demədim delta; a (a).

Bu anda etdiyiniz işlər kim olduğunuzdan asılıdır. Burada dünya iki kateqoriyaya bölünür. Əgər riyaziyyatçı olsanız, aşağıdakıları deyirsiniz:

Yaxşı, buna görə delta funksiyası müəyyən edilə bilməz. Hipotetik xüsusiyyətlərinə nəzər salaq və müəyyənləşdiriləcəyi yerdə uyğun bir ev tapsaq da görək. Bunu edə bilərik və biz paylamaları alacağıq. Bunlar (mütləq) funksiyalar deyil, funksiyalar kimi davranan şeylərdir və tez-tez onlarla birlikdə fəaliyyət göstərə biləcəklər; ancaq müəyyən olmayan şeylər var (məsələn "mənaları"), buna görə diqqətli olmalıyıq.

Əgər siz riyaziyyatçı deyilsinizsə, aşağıdakıları söyləyin:

Tamam, beləliklə delta funksiyası yanlış təsvir edilə bilər. Kim deyir? Riyaziyyatçılar bir dəstə? Onları görməyin! Nə bilirlər?

Dinləyicilərimi təhqir edərək, davam edəcəyəm.

dirac delta güclü> adətən standart ölçülə real xəttdə bir nöqtənin delta funksiyası (tez-tez 0) hesab edilir. Buna görə mənə şərhlərdən şikayət edənlər, deltalarımı bilmədən, bu tərifi istifadə etdikləri üçün bunu edirlər. Onlara görə üzr istəmirəm: buna görə riyaziyyatın qorunmasını istifadə etməkdən ötrü üzr istəməyə bilərəm (Humpty Dumpty kimi məşhurdur: hər şeyi yalnız düzgün şəkildə düzəldir), pis bir forma başqa bir şey üçün standart termindən istifadə etməkdir.

Amma istədiyim hər şeyi yerinə yetirən bir delta funksiyası var və burada mən burada nə lazımdır. X setində bir nöqtə ölçüsü alıramsa, orijinal funksiya və delta var; a : X sağarrow; Ropf; Delta funksiyasının meyarlarına cavab verən. Çünki X və sağarrow funksiyasını axtarırıq; Ropf; bütün dəyərlərin cəmi 1 olduğu sıfır olan sıfırdır. Bu funksiya sadədir: məlumatın tək eksikliyi a nöqtəsində bir dəyərdir və 1-ə bərabər olan məbləği 1 ədədə verəcəyik. {a} da xarakterik funksiyadan başqa heç kim. Sonra:

int; X ? bir d mu; = sum; x in; X ? a (x) =? a (a) = 1.

Beləliklə, bu vəziyyətdə, təkli set üçün xarakterik funksiya və delta funksiyası razılaşır.

Nəticədə "funksiyaları" üç ailəsi var:

  • Bir nöqtəli dəstlərin xarakteristik funksiyaları,
  • Delta funksiyaları,
  • Kronecker delta funksiyaları.

İkincisi, ən çox yayılmışdır, çünki hər hansı biri hər hansı bir nöqtə ölçüsü istifadə edərkən bunun nümunəsidir. Amma birinci və üçüncü bir üstünlük var ki, onlar həmişə orijinal xüsusiyyətlərdir. Üçüncü, həqiqətən, xüsusi bir ailənin ailəsi (tamsayılar və ya onların alt kümeleri) üçün xüsusi bir vəziyyətdir.

Nəhayət, mən əvvəlcə cavab yazdığımda mən düzgün düşünmədim (mən şübhə ilə deyildim, çünki ümid edirəm ki, yalnız mən həqiqətən söhbət etdiyimdən bəhs etdiyimi göstərdim) Düşünürəm ki, əvvəlcə, mən yalnız düşünməmişəm). Delta Diracın adi mənası burada tələb olunan deyil, amma cavab mənbələrindən biri giriş sahəsinin müəyyən edilməməsi idi, buna görə Kronecker deltası da düzgün olmayacaqdı. Beləliklə, mən ən yaxşı riyazi cavab (mən aspirasiya) xarakterik olardı.

Ümid edirəm ki, bunların hamısı aydındır; və mən də ümid edirəm ki, artıq TeX makroları yerinə HTML obyektlərini istifadə edərək riyazi bir parça yazmamağam!

39
03 авг. cavab Loop Space 03 aug verilir. 2011-08-03 11:01 '11 'da 11:01' də 2011-08-03 11:01

Bunu edə bilərsiniz

 v = Math.abs(--v); 

Azaldılması dəyəri 0 və ya -1 təşkil edir, sonra Math.abs -1 + Math.abs çevirir.

35
02 авг. Cavab Paul 02 aug tərəfindən verilir . 2011-08-02 15:31 '11 at 15:31 2011-08-02 15:31

Ümumiyyətlə, iki dəyər arasında keçmək lazımdır zaman, sadəcə iki dəyərin ümumi dəyərindən cari dəyəri çıxara bilərsiniz:

  0,1 -> v = 1 - v 1,2 -> v = 3 - v 4,5 -> v = 9 - v 
34
03 авг. Mouna Cheikhna tərəfindən verilmiş cavab 03 Avqu 2011-08-03 16:37 '11 'də 16:37' da 2011-08-03 16:37

Əgər 1 və ya 0 tamsayı olmalıysa, heç bir parantez tələb olunmamasına baxmayaraq, bunu necə yaxşı edirsiniz. Əgər bunlar məntiqi dəyərlər kimi istifadə olunarsa, sadəcə olaraq bunu edə bilərsiniz:

 v = !v; 
34
02 авг. Michael Berkowski tərəfindən verilmiş cavabı 02 Avqust. 2011-08-02 14:25 '11 'də saat 14:25' da 2011-08-02 14:25
 v = v == 0 ? 1 : 0; 

Yeter!

24
02 авг. cavab nidhin verilir 02 av . 2011-08-02 14:25 '11 'də saat 14:25' da 2011-08-02 14:25

Başqa cavab, şərh və öz fikirlərimi yekunlaşdıraraq, iki şeyi birləşdirməyi təklif edirəm:

  • Köçürmək üçün funksiyanı istifadə edin
  • Bu funksiyanın içərisində daha oxunaqlı bir tətbiq istifadə edin.

Burada bir kitabxana qoymaq və ya başqa bir Javascript Çərçivəsi üçün bir plagində saxlaya biləcəyiniz funksiyadır.

 function inv(i) { if (i == 0) { return 1 } else { return 0; } } 

Və istifadə sadədir:

 v = inv(v); 

Faydaları:

  • Kodun çoğalması yoxdur
  • Siz və ya başqa bir kəs bunu gələcəkdə oxuyarsa, kodunuzu ən az vaxtda başa düşəcəksiniz.
17
02 авг. Martin Şlagnitweit tərəfindən verilmiş cavabı 02 Avqust. 2011-08-02 22:00 '11 saat 22:00 'da 2011-08-02 22:00

Çözümlərin siyahısı

Mən təklif edəcəyim üç təklif var. Bütün bunlar hər hansı bir dəyər 0 ( 1 , true , və s.) Və ya 1 (əgər 0 , false , null , və s.):

  • v = 1*!v
  • v = +!v
  • v = ~~!v

və bir daha, artıq qeyd olundu, lakin ağıllı və sürətli (yalnız 01 s üçün çalışır):

  • v = 1-v

Həll 1

Aşağıdakı həlli istifadə edə bilərsiniz:

 v = 1*!v 

Bu, ilk tam ədədi tam əksinə ( 0 dan true və hər hansı digər dəyəri false ) çevirir və sonra 1 ilə çarpdıqda bir tamsayı kimi işləyəcək. Nəticədə, 0 a və hər hansı digər dəyəri 0 çevrilir.

Bir sübut kimi, bu jsfiddle bax və yoxlamaq istədiyiniz hər hansı dəyərləri belirtin : jsfiddle.net/rH3g5/

Nəticələr aşağıdakılardır:

  • -123 tamsayıya çevrilir 0 ,
  • -10 bir tamsayıya çevrilir 0 ,
  • -1 , tamsayıya 0 ,
  • 0 bir tamsayıya çevrilir 1 ,
  • 1 bir tamsayıya çevrilir 0 ,
  • 2 tam ədədi 0 ,
  • 60 tamsayıya çevrilir 0 ,

Həll 2

Mblase75-də qeyd edildiyi kimi, mənim kimi işləyən başqa bir həll var idi:

 v = +!v 

Həm də əvvəlcə orijinal dəyərdən boolean dəyər təşkil edir, lakin 1* əvəzinə + tam ədədi çevirmək üçün istifadə edir. Nəticə tam olaraq eynidır, lakin təyinat daha qısadır.

Həll 3

Digər yanaşma ~~ operatoru istifadə etməkdir:

 v = ~~!v 

Bu çox qeyri-adi və həmişə boolean bir tamsayı çevrilir.

17
17 авг. Cavab Tadeck 17 avqustda verilir . 2011-08-17 19:45 '11 saat 19:45 'da 2011-08-17 19:45

Niyə öz məntiqinizi yaratmaq istəyirsən? Funk sintaksislərini sevirəm, amma niyə açıq kod yazmıram?

Ən qısa / sürətli deyil, amma ən aydın (və bütün oxunaqlı) məşhur if / else dövlətini istifadə edir:

 if (v === 0) { v = 1; } else { v = 0; } 

Əgər həqiqətən aydın olmaq istəyirsənsə, bunun üçün nömrə yerinə məntiqi dəyərlərdən istifadə etməlisiniz. Çox hallarda onlar tez yetərlidir. Boolean ilə sadəcə qısa formada qalib gələn sözdizimi istifadə edə bilərsiniz:

 v = !v; 
13
02 авг. Mark Knol tərəfindən verilmiş cavab 02 Avqust. 2011-08-02 22:04 '11 at 10:04 pm 2011-08-02 22:04

Orijinal həllinizin başqa formaları:

 v = Number(v == 0); 

EDİCƏ: Mənim qərarımdakı səhvləri göstərmək üçün TehShrike və Guffa sayəsində.

12
02 авг. Kurt Kaylorun verdiyi cavabı 02 Avqu 2011-08-02 19:52 '11 at 19:52 2011-08-02 19:52

Mən bunu daha açıq şəkildə ifadə edərdim.

v nə deməkdir?

Məsələn, v dövlətdir. Nişan statusunu yaradın. DDD'de dəyər obyekti.

Bu dəyər obyektində məntiqi tətbiq edin. Daha sonra kodunuzu daha funksional şəkildə daha oxunaqlı şəkildə yaza bilərsiniz. Kommutasiya vəziyyəti mövcud vəziyyətə əsasən yeni bir dövlət yaratmaqla həyata keçirilə bilər. Sonra if-operator / məntiq sizin obyektinizə daxil edilir və silə bilərsiniz. ValueObject obyekti həmişə dəyişməzdir, buna görə heç bir identifikator yoxdur. Buna görə yeni dəyər yaratmaq üçün dəyər dəyişdirmək lazımdır.

Məsələn:

 public class Status { private readonly int _actualValue; public Status(int value) { _actualValue = value; } public Status(Status status) { _actualValue = status._actualValue == 0 ? 1 : 0; } //some equals method to compare two Status objects } var status = new Status(0); Status = new Status(status); 
11
05 авг. Marco Franssen tərəfindən verilmiş cavab 05 avqust 2011-08-05 13:33 '11 'da 13:33' də 2011-08-05 13:33

Bunun bir başqa yolu:

 v = ~(v|-v) >>> 31; 
10
18 авг. cavab Eng.Fouad 18 aug verilir . 2011-08-18 22:51 '11 at 10:51 pm 2011-08-18 22:51

Yalnız vuruş üçün: v = Math.pow(v-1,v) 1 ilə 0 arasında dəyişir.

8
18 авг. Blazemonger 18 Avqust cavab verdi 2011-08-18 23:13 '11 at 23:13 2011-08-18 23:13

Bu itkin:

 v = [1, 0][v]; 

Bu da bir robin dəyirmi kimi işləyir:

 v = [2, 0, 1][v]; // 0 2 1 0 ... v = [1, 2, 0][v]; // 0 1 2 0 ... v = [1, 2, 3, 4, 5, 0][v]; // 0 1 2 3 4 5 ... v = [5, 0, 1, 2, 3, 4][v]; // 0 5 4 3 2 1 0 ... 

və ya

 v = {0: 1, 1: 0}[v]; 

Son həllin gözəlliyi, bütün digər dəyərlərlə də işləyir.

 v = {777: 'seven', 'seven': 777}[v]; 
8
24 июня '15 в 16:52 2015-06-24 16:52 Cavab Nina Scholz tərəfindən 24 İyun 2015 günü saat 16: 52'de verilir. 2015-06-24 16:52

Daha bir şey: v=++v%2

(C'de yalnız ++v%=2 olardı)

ps Bəli, bilirəm ki, bu ikili məqsəddir, amma bu, sadəcə C metodunun işlənməmiş işlədilməsidir (bu işə yaramayan, JS əvvəlcədən artımını dosen't return lvalue operatorunun gücləndirir.

7
02 авг. Cavab Adam Jurczyk tərəfindən verilir 02 av. 2011-08-02 21:41 '11 da 21:41 'də 2011-08-02 21:41

Girişinizin 1 və ya 0 olduğuna zəmanət verirsinizsə, istifadə edə bilərsiniz:

 v = 2+~v; 
7
05 авг. cavab marka 05 avqu . 2011-08-05 11:15 '11 11:15 'da 2011-08-05 11:15

{1} bir sıra müəyyən etmək, v-ə v vv-yə təyin etmək, beləliklə 0-ə 1 ədədə bərabər olur və əksinə.

7
17 июля '12 в 18:50 2012-07-17 18:50 cavab 17 iyul 2012-ci il saat 18:50 radələrində Samə verilir. 2012-07-17 18:50

Bu JavaScript olduğundan, biz int üçün çevirmək unary + istifadə edə bilərsiniz:

 v = +!v; 

Bu, məntiqi NOT v (dəyər verərsə v == 0 və ya v == 1 ). Sonra qaytarılmış məntiqi dəyərini müvafiq tamsayı təmsil etməyə çeviririk.

6
24 нояб. Cavab verilir 0x499602D2 24 noyabr. 2012-11-24 21:33 '12 at 21:33 2012-11-24 21:33

Bunu etmək üçün başqa bir yaradıcı yol, hər hansı bir dəyərə bərabər, hər zaman 0 və ya 1 qayıtsın

 v = !!v^1; 
5
02 авг. Yanick Rochon tərəfindən verilmiş cavab 02 Av 2011-08-02 18:47 '11 də 18:47 'də 2011-08-02 18:47

V üçün mümkün dəyərlər yalnız 0 və 1 olarsa, hər hansı bir tamsayı x üçün ifadə edilir: v = Math.pow ((Math.pow (x, v) - x), v); dəyəri dəyişdirəcək.

Bilirəm ki, bu, çirkin bir qərardır və OP bunu axtarmaqdan qaçmadı ... amma tualetdə olduğumda başqa bir həll düşünürdüm: P

4
05 авг. cavabına Amit 05 aug verilir . 2011-08-05 13:50 '11 saat 13:50 'da 2011-08-05 13:50
 v=!v; 

v = 0 və v = 1 üçün işləyəcək; və dövləti keçid;

4
31 авг. müəllim cavab verdi 31 avqust. 2011-08-31 07:21 '11 saat 07:21 'da 2011-08-31 07:21

Təsdiqlənməmiş, amma məntiqi bir vəziyyətdə olsanız, məncə var v = !v işləyəcək.

Link: http://www.jackfranklin.co.uk/blog/2011/05/a-better-way-to-reverse-variables

3
03 авг. Cavab Martin Bean tərəfindən 03 avqu. 2011-08-03 14:18 '11 'da 14:18' da 2011-08-03 14:18

Yalnız iki dəyər varsa, bu vəziyyətdə olduğu kimi (0, 1), məncə int istifadə etmək israfdır. Əksinə, mantıksal və bitlərlə işləyin. Mən nə düşündüyünü bilirəm, amma iki dövlət arasında keçid vəziyyətində məntiqi seçim ideal seçimdir.

1
31 окт. Cavab Amber 31 Oct. 2012-10-31 20:20 '12 saat 20:20 'da 2012-10-31 20:20

Bəli, biz bilirik ki, javascriptdə yalnız Boolean müqayisəsi də gözlənilən nəticə verəcəkdir.

yəni. Bunun üçün v = v == 0 kifayətdir.

Bunun üçün kod aşağıda verilmişdir:

https://jsfiddle.net/vikash2402/83zf2zz0/ 

Ümid edirəm bu sizə kömək edir :)

1
04 окт. Cavab Vikash Pandey 04 oktyabr tərəfindən verilir . 2016-10-04 10:27 '16 saat 10:27 'da 2016-10-04 10:27
 v = !v * 1 

Booleanı ədədə çevirmək üçün 1-ə çarpar

-1
28 окт. JVM cavab 28 oktyabr. 2017-10-28 01:12 '17 'də 1:12' də 2017-10-28 01:12

tags haqqında digər suallar və ya bir sual