cloneすらしたくない
ボンクラプログラマー
頭とお腹が弱い。
最近は個人鯖の @shibafu528 がメインです。
⚠️ CW設定のない下品な発言が非常に多いです。これは仕様ですのでご了承下さい。
ℹ️ spam対策でフォロー承認制にしています。上の一文が構わないという方ならお気軽にどうぞ。
FINAL FANTASY XIV 関連の著作物は
(C) SQUARE ENIX CO., LTD. All Rights Reserved.
したくないが、現状あらゆることを簡単にするために新しいオブジェクトを返すことにしているから仕方ない。
入出力が全てContextの生存中は存在するというのを実現してやれれば、まあ出来るんだろうけど……という感じ
四則演算の時の型めんどいな〜って思ってたんだけど、ここでYQの驚きの仕様として、四則演算を行うと常に小数点以下が消滅する
- YQ(Kotlin版)は32bit符号付き整数に収まる整数リテラルをjava.lang.Integer、その範囲を越える整数リテラルをjava.lang.Longとして解釈する
- YQの四則演算関数は全ての引数に対して擬似コード args.map { |v| v.toString().toLong() } を行ってから計算する
- YQのequalsは第1引数をレシーバとし、第2引数を引数としてequals()を呼んでいる
- java.lang.Long.equals() は、引数がjava.lang.Longかつ内容が同じ場合に真となる
- 整数リテラル 2 はjava.lang.Integerであるため、これが真になることは無い
Javaのboxingされた値の仕様も関わってくるのでこれひどく分かりにくいですね!
俺は今日までboxingされたまま比較するとこうなることを知りませんでした。問題としてアップした直前に知ったので。
さすがにjava.lang.Integerとjava.lang.Long間くらいは良きようひしてほしかった
Javaの場合プリミティブであればそれなりの挙動をするから、余計混乱するねえというのがある
そして多くのコードであるところのunboxingされる文脈であれば問題にならない
shibafu528は算数が出来ないと言っていたが本当に出来てない証拠が揃ってしまったので、もう今日から算数が出来ないけどIT業界でも働けますっていう碑になろうかと…
あっ思いついた。twitter4j.User.getID()の戻り値がlongなので、たぶんTwitterの内部IDが若い人のツイートだけ抽出しようとすると失敗するな。
Kotlin版YQも、リテラルは全部Longで良かったんだと思う。外部変数の結果でintが返ってきたらキャストしてあげるというのも必要だけど。
JVMの命令セットを見て笑顔になろうな
https://docs.oracle.com/javase/specs/jvms/se18/html/jvms-2.html#jvms-2.11
Eclipse Collectionsというライブラリにもあらゆるプリミティブ用のコレクションがあってだな
今はもうy4aからEclipse Collections外しても良さそうな気もするな。さすがにARTのガベージコレクターなら何とかしてくれるやろ (てきとう0
yqrsをy4aに乗せるとしたら、全部Atomに変換したりしなかったりするんだなあ、ひ、ひえ〜
macOSでshare extensionを書こうとしてショバ代で諦めたこと……あり
dnsmasq走らせるサーバ、寝てるPi2Bとかでもいいよなあ雑なACアダプタでも動くし…みたいな気持ちちょいある
dealloc、一見[super dealloc]するのが妥当に見えて、ARCでは書くの自体禁止で勝手にやってくれるの、不安になるものがある
🎧 ぱんぱかカフぃR(上京編) | interfm | 2022/04/06/水 24:00-24:30 https://radiko.jp/share/?sid=INT&t=20220407000018
YQLExpressionみたいなobjc classにラップするとして、YQ_Expressionはconstなやつとそうじゃないやつが混在してるんだよな
ほぼ全てのAPIはconst YQ_Expression*を入力とするけど、constなしのものは解放の責任がね、みたいな
yqrs::v1::ExpressionのDebug printとかをC側で得たい時の手段をまだ用意してなくて、デバッグが面倒
え、えぇ……?
よさレイ - ニコニコ動画
https://www.nicovideo.jp/watch/sm40300108
地元企業が食品の名で出してる劇物、そういえば今の俺の身体じゃ挑戦できないな……になってる
NC対応とかもう持ってるしなぁでうどん3にしたけど、あの値段は今でもそこそこどうかと思う
yq_v1_context_register_functionでvoid*ひとつくらい引き回せるようにしておかないと色々困るの、忘れていた……
void*をひとつ足して、YQLContext*のポインタを__bridgeで引き渡し、したいなあ…
yq_v1_register_functionにvoid*を足すか、YQ_Context内にvoid*のメモリを1つ確保するか
register_functionのコールバックではYQ_Context*が渡ってくるので、まあその中を参照はokなんだよな
さてObjC側でYQ関数書くぞと思ったら、YQ_Expressionからcar, cdrを取るC関数を公開していなかったことに気づいた
C側(これはObjCだけど)でYQ関数を定義できた〜 けどなんかもやっとする部分が割とあるのでAPI考え直しかな…
returnをYQ_Expressionにして、out引数で巻き戻しが必要かを……かなあ