日々精進

新しく学んだことを書き留めていきます

switch文のfall throughが許されるケース

stack overflowで、以下のようにコードを含まないcaseについてはfall throughを許すと言っている人がいた。

switch (value)
{
  case 0:
    result = ZERO_DIGIT;
    break;

  case 1:
  case 3:
  case 5:
  case 7:
  case 9:
     result = ODD_DIGIT;
     break;

  case 2:
  case 4:
  case 6:
  case 8:
     result = EVEN_DIGIT;
     break;
}

確かに上記はそれほど問題無いように見えるが、開発ルールが複雑になるのと、それほど上記の書き方が活躍する機会はないと思うので fall throughは一律禁止でいいと思う。

参考:

stackoverflow.com

AirPods Proの背面ボタンを長押ししてもAndroidの「使用可能なデバイス」にAirPods Proが出てこない

iPhoneをAndroidの両方を持っていて、ペアリング済のiPhoneが近くにあるとこの現象が起きるっぽい。 iPhoneのBlurtoothをOffにしてから背面ボタンを長押しすると認識してくれた。 注文から一ヶ月待ってようやくAirPods Proを手に入れましたが、最高です。

vee-validateのvalidation-providerに複数のv-modelを渡すとブラウザが固まる

以下のように書くと、ブラウザが固まる現象が起きた。

※pugで記述している

            validation-provider(v-if="!hasPreviousOrder" rules="required" v-slot="{ errors }")
              input.form-control.mt-2(v-if="!isPasswordVisible", type='password', v-model="order.level5Password", placeholder='Level5IDのパスワード')
              input.form-control.mt-2(v-if="isPasswordVisible", type='text', v-model="order.level5Password", placeholder='Level5IDのパスワード')
              .errorMessage {{ errors[0] }}
              b-form-checkbox.mt-2(v-model="isPasswordVisible") パスワードを表示する

この現象について書いているサイトは見付からなかったが、 色々試した結果、validation-providerに渡すhtml blockにv-modelが複数あり、かつそれぞれ異なるfieldをbindしていると発生するっぽい。

以下のようにb-form-checkboxをvalidation-providerの外に出すと直った。

vee-validateのバージョンは3.2.1。

            validation-provider(v-if="!hasPreviousOrder" rules="required" v-slot="{ errors }")
              input.form-control.mt-2(v-if="!isPasswordVisible", type='password', v-model="order.level5Password", placeholder='Level5IDのパスワード')
              input.form-control.mt-2(v-if="isPasswordVisible", type='text', v-model="order.level5Password", placeholder='Level5IDのパスワード')
              .errorMessage {{ errors[0] }}
            b-form-checkbox.mt-2(v-model="isPasswordVisible") パスワードを表示する

テーブルデータの各カラムの欠損率を表示する

EDAやってて欠損率の高いカラムを除去したい場合などに便利。

null_count = dataset.isnull().sum()
null_rate = null_count / len(dataset)

null_table = pandas.DataFrame({
    'null_couunt': null_count,
    'null_rate': null_rate
})

null_table.sort_values(by='null_rate', ascending=False)

上記は以下より転載。

qiita.com