読者です 読者をやめる 読者になる 読者になる

配列関係の覚書(2)

いただいたコメント

前回の記事に達人の皆様からコメントをいただいていたにもかかわらず、返事もできないまま1週間近くたってしまっていた。

私にとっては結構重要なご指摘だったので、コメント欄にではなく、本編にてお返事させていただきます。

id:imihito さんからのコメント

Split関数のように配列が返される関数は、
同じ型の動的配列の変数へ直接代入できます(上書き)。

なんと! そうだったのか!

んで、やってみた。

リスト1
Public Sub hageHoge()
  Dim hageArray() As String
  hageArray() = Split("ち~んw,ウホッw,ウマーw,アヒャw", ",")
  Dim i As Integer
  For i = LBound(hageArray) To UBound(hageArray)
    Debug.Print hageArray(i)
  Next
  hageArray() = Split("アホ,ボケ,クズ", ",")
  For i = LBound(hageArray) To UBound(hageArray)
    Debug.Print hageArray(i)
  Next
End Sub
実行結果

f:id:akashi_keirin:20170429063906j:plain

おおっ! ホントだ!

たしかに上書きだ。

id:imihito さん、ありがとうございました!

thom (id:t-hom)さんからのコメント

動的型付け言語をやってみると、あんまりVariant気にならなくなりますよ。RubyとかPHPとかJavaScriptとか。

まさにそのJavaScriptで遊んでいたときに、

何だよ! 何でもかんでも「var」で済ませるのかよ!
雑やのー!


と思ったことがありますw

でも、それに馴染んだらそんなに気にならなくなるかもしれませんね。

静的型付けって所詮は安全機構なので、コードが捻じ曲げてまでそれにこだわる必要はない

これはホントにおっしゃるとおり。プログラミングする側がちゃんと押さえるべきところを押さえていたら何ら問題ないわけで、コード捻じ曲げてまでこだわるというのは、それこそ本末転倒ですね。

今回のまとめ

  • Split関数の戻り値はいきなり配列変数にぶち込んでおK
  • 言語仕様の便利なところは理解した上でこだわりなく使う

達人の皆様のアドヴァイス、ただの素人のワタクシには本当にありがたいものです。

御礼が遅れてすみませんでした。

@akashi_keirin on Twitter