X



Kotlin 2
■ このスレッドは過去ログ倉庫に格納されています
0035デフォルトの名無しさん
垢版 |
2017/11/03(金) 12:10:24.60ID:MxTlS5aq
flag |= x
flag &= ~x
これを
flag = flag or x
flag = flag and x.inv()
こう書かなきゃならない冗長さ

開発者曰く、可読性の問題なら関数にすればいいじゃんと
0036デフォルトの名無しさん
垢版 |
2017/11/03(金) 12:25:36.60ID:OuG6RHrP
超一般論としては論理演算子付き自己代入はそれによって陰に実行されるものがあんまり自明ではないので使わないほうがよい
あんまり自分の分析能力を信用してはイカンよ
0038デフォルトの名無しさん
垢版 |
2017/11/03(金) 13:24:04.81ID:mQ2prqq7
Kotlinインアクションはいいことはいいのだが索引が貧弱で、
例えばソートしようと思って索引見ても sort が載っていない。
じゃあ List のメソッドだろうということで List を探しても載っていない。
ということでリファレンスとして使えない。内容同じままでいいから索引を大幅拡充したの出して欲しい。
0044デフォルトの名無しさん
垢版 |
2017/11/04(土) 03:50:10.34ID:3cC+jj+w
ifとか式にできるくせに、代入文は式にできねぇの??しょっぺぇ。
while ((bytesRead = stream.read(bytes)) != -1)
とかできねぇの?しょっぺぇ
0045デフォルトの名無しさん
垢版 |
2017/11/04(土) 04:33:53.14ID:3cC+jj+w
あれ、ひょっとして、kotlinてまだシリアライズできねぇの??
しょっぺぇ・・・
普通にデータの保存にJavaのバイナリフォーマットのシリアライズ使ってたんだけどな・・・
あぼぼぼぼぼ。
0048デフォルトの名無しさん
垢版 |
2017/11/04(土) 08:18:58.07ID:hKqH3C3y
whileはみんなそこで詰まるNE!

Kotlinは条件部分で副次作用が起こることをよしとしないのだ
数少ない「単体部分で見ればJavaより記述量多い」部分なので、
我慢して明示的に変数定義に切り分けるか、素直に組み込みのBufferedReaderとか使ってくれ
よっぽどオリジナルでない限りwhileでなんかしてたやつは「whileの外ごとまとめて」3行くらいで書ける
0049デフォルトの名無しさん
垢版 |
2017/11/04(土) 10:23:22.90ID:jcPkxcYi
昔、ポインタ演算できないからJavaはしょぼい、というような主張してる奴が
たまに居たのを思い出した
0051デフォルトの名無しさん
垢版 |
2017/11/04(土) 11:58:10.64ID:hKqH3C3y
>>49
Java使ってれば違和感なく移行できますと言われつつ、実際はプチパラダイムシフトの受け入れが必要なのはちょっと不誠実かなとは思う
我々は「うっひょー○○言語や××言語のアレみたいだね!」とか喜ぶわけなんだが
Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い
0052デフォルトの名無しさん
垢版 |
2017/11/04(土) 12:33:29.77ID:jcPkxcYi
>>51
アピールしてるのは「相互運用性が高いから移行できます」であって、「違和感なく移行できます」では無いよ
そういうのを書いてる第三者の記事はありそうだけど

公式的にはむしろ関数型に力入れてるのを売りにしてる
0053デフォルトの名無しさん
垢版 |
2017/11/04(土) 19:11:42.37ID:mE4V8fBV
>>51
> Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い

そうやって全く関数型やらモダン言語らしいとこ使わない違和感あるKotlinコードが出来そう
0055デフォルトの名無しさん
垢版 |
2017/11/04(土) 22:23:46.53ID:g0AJbdlv
>>38
Kotlin in action買おうか迷っているけど、公式サイトの解説と比べてもっと深いことが書いてあったりする?
ちなみにKotlinスタートブック は読了済み。
0056デフォルトの名無しさん
垢版 |
2017/11/04(土) 22:34:52.81ID:U6RGh2Ax
>>54
javaとの対比だとプロパティとnull安全だな。最も有用
それ以外はコーディング的な進化だから追々覚えればよい
0057デフォルトの名無しさん
垢版 |
2017/11/05(日) 00:26:43.77ID:x5/Ij6xv
俺のお気に入りのF#はなんだかんだでnull残ってるから、その点はkotlin羨ましい
0058デフォルトの名無しさん
垢版 |
2017/11/05(日) 00:58:12.21ID:YBVMpJn0
残念ながらjava互換だからnullは無くならないのだよ
0059デフォルトの名無しさん
垢版 |
2017/11/05(日) 02:57:49.62ID:WRVCeBNz
ガードしない場合、ぬるぽが起こる割合はJavaとほぼ同じ
言語の仕組み上安楽にガードしやすいってだけの話だからね
しない・できない・忘れてたという場合はぬるぽぬるぽぬるぽだ
コードはまさに意図した通りではなく書いた通りに動く
そこでは思想など無意味だ
0060デフォルトの名無しさん
垢版 |
2017/11/05(日) 11:18:58.60ID:vfJyTH9D
Android Studioでのコード補完のパラメータ表示にInputStream!とか末尾に「!」が
ついてるんですが、これは何なんでしょうか?
0061デフォルトの名無しさん
垢版 |
2017/11/05(日) 11:55:04.18ID:WRVCeBNz
IntelliJ の T! は「T か T? のどちらか」を示す
つまりNullableかどうかすらわかんねえという記号
0062デフォルトの名無しさん
垢版 |
2017/11/05(日) 12:09:14.89ID:vfJyTH9D
>>60
ありがとうございます。Java絡みのは当たり前ですが、ほぼそうなってますね。
理解しました。
0063デフォルトの名無しさん
垢版 |
2017/11/05(日) 12:47:54.37ID:pFqd1r18
忘れてたって言ったって全部に?付けないとJavaと同じにならないわけで
?付けなけりゃコンパイル通らないしNULL安全意識せざるを得ない
0064デフォルトの名無しさん
垢版 |
2017/11/05(日) 14:29:21.23ID:kyKiHR5g
!! は、Nullable を、NotNull に強制変換する、危険な演算子だから、
requireNotNull 関数を使え

例えば、Java から、null が代入される場合、
String → IllegalStateException。ヌルポよりまし
String? → Nullable なのでOK

Platform Type
型を省略(String!) → デリファレンス時に、ヌルポ

Java からの戻り値がすべて、Nullable になるのは困るので、
その折衷案がPlatform Type
006564
垢版 |
2017/11/05(日) 14:35:11.49ID:kyKiHR5g
Java からの戻り値をすべて、Nullable にするのは面倒なので、
そのまま使ったのが、Platform Type

デリファレンス時に、ヌルポとなるため危険!
0066デフォルトの名無しさん
垢版 |
2017/11/05(日) 14:40:57.73ID:YBVMpJn0
めんどくせえな
0067デフォルトの名無しさん
垢版 |
2017/11/05(日) 15:03:32.80ID:cR0WBKoF
Javaのほうのコードに@NonNullアノテーションつけとけば、KotlinからT!じゃなくてTとして扱える
0068デフォルトの名無しさん
垢版 |
2017/11/05(日) 15:52:17.12ID:WRVCeBNz
現代的な気遣いのされてるJavaライブラリはKotlinからでも便利に扱える
シガラミがあって旧来のままのライブラリはそりゃ利用者側が手間かけるしかない
0069デフォルトの名無しさん
垢版 |
2017/11/05(日) 16:52:07.10ID:J++DNvfV
ラッパークラス作るぐらいしか方法なさそうだな
0070デフォルトの名無しさん
垢版 |
2017/11/05(日) 18:48:00.64ID:WL5EiVt2
ラッパークラスもありだし、OSSなライブラリだったらアノテーション付与してPR送るのも有用だな
0071デフォルトの名無しさん
垢版 |
2017/11/05(日) 19:23:52.87ID:giKdejUB
Kotlinから使いやすくなりました! みたいに言えるのはひょっとしたら売りになるかもしれんね
0073デフォルトの名無しさん
垢版 |
2017/11/05(日) 19:26:26.36ID:YBVMpJn0
ことりんの擬人化はよ
0076デフォルトの名無しさん
垢版 |
2017/11/06(月) 10:56:08.46ID:OqkByGQj
やはり擬人化が必要だな
萌えキャラで
0078デフォルトの名無しさん
垢版 |
2017/11/06(月) 13:01:01.21ID:V0vtn4gd
それは君には中々理解できない理由による。

例えば以前Appleが傾いた時にジョブズが復帰してiMacを作ってAppleは救われたが、iMacはハードウェアとしてそんなに素晴らしかっただろうか?
たいして素晴らしくはないのだ。ブラウン管ディスプレイに本体入れて一体化しただけだ。しかし売れた。なぜか?
デザインがよかったからだ。コンピュータとしてはどうでもいい見た目が売れ行きに多大に影響した。
技術者から見ればどうでもよさそうなものでも甘く見てはいけないということだ。
0079デフォルトの名無しさん
垢版 |
2017/11/06(月) 13:32:09.21ID:wZC/0idP
>>77
技術的な話をスレでされても理解できなくて不愉快だから「とにかくほかの話」をさせたがっている
知らない言語のスレなんて見なきゃいいのにね
0081デフォルトの名無しさん
垢版 |
2017/11/06(月) 15:18:23.96ID:8DS1P3Ga
ほんとおまえらはばかだなあ
日本の電子IT系なんてオタクの巣窟なんだから萌えキャラことりんで流行言語間違いなしやで
0085デフォルトの名無しさん
垢版 |
2017/11/06(月) 20:50:33.70ID:iuxlkbQ9
インアクションとなんとか太郎本どっち買おう
後者は本屋で見たんだけど
0087デフォルトの名無しさん
垢版 |
2017/11/07(火) 06:11:35.45ID:uepCx6fG
「たのしいRuby 第5版、2016」高橋 征義
「みんなのPython 第4版、2017」柴田 淳
「Kotlinスタートブック、2016」長澤 太郎

この辺は、日本では、避けては通れない人達
0091デフォルトの名無しさん
垢版 |
2017/11/07(火) 12:19:01.95ID:yzrwY/tJ
そうなの?どういう点がまずいの?
0093デフォルトの名無しさん
垢版 |
2017/11/07(火) 12:40:11.22ID:yzrwY/tJ
なるほど。
濃いめなのは?
0095デフォルトの名無しさん
垢版 |
2017/11/07(火) 14:06:00.83ID:uepCx6fG
掌田津耶乃は、ほとんどの言語・フレームワーク・開発環境の、本を書いてる

売れ筋では、必ず顔を出す。
売れる分野に、掌田あり!
0096デフォルトの名無しさん
垢版 |
2017/11/07(火) 17:10:16.14ID:qyKBmVxs
公式見て自習しろや、が通じるならセミナーとか講演会とか必要ないわけでな(いや、これに関しては別に必要ないとは思ってるが)
世の中の需要はあんまりロジカルではないのだ
0097デフォルトの名無しさん
垢版 |
2017/11/07(火) 21:38:52.62ID:tWasbjrL
>>85
太郎しか読んでないでActionは買ったばかりだけど、
Javaは一通りで来てKotlinをとりあえずやってみたいなら太郎、
Kotlinにどっぷり漬かることが確定しているならAction?かな
いずれにしてもJavaの理解はないとかなり不利。

>>95
器用貧乏というやつですね、わかります。
0100デフォルトの名無しさん
垢版 |
2017/11/07(火) 23:20:19.14ID:hhPr1fc6
やってみるとわかるのだが(やらなくてもいいが)、中上級者向けの本というのは全然儲からないのだ
書くの時間かかるし分厚くなって値段高くなるし売れなくなるしチェック内容増えるし時代遅れが混じるし下手すると共書だし
出来によっては「あのすごい便利な本を書いた人」という称号はいくらかの称賛になり、ひょっとしたら生活豊かルートをも開拓するかもしれないが、分は悪い
初心者向けの本をひとりで年に2冊くらい書いてたほうが、志低いと揶揄されながらもきちんと生活できるのさ
0104デフォルトの名無しさん
垢版 |
2017/11/08(水) 06:28:34.57ID:ShM00Q+N
>>94
器用貧乏とは言ったものの、翻訳書が原書+1000円くらいの値段になることがざらなことを考えると
英語の公式チュートリアルを訳しただけでも、値段相応なのかもしれん。

しかし、著者のことをよく知らずにタイトルだけでうっかり買ってしまったものの身にもなって欲しい(自己責任)
深く理解した上で書かれた本かどうかは、(本を必要とするレベルの人には)立ち読み程度ではわからない。
0105デフォルトの名無しさん
垢版 |
2017/11/08(水) 08:32:48.67ID:a/cZ4nXd
Kotlinに限らずあれもこれも全く初心者に寄り添っていないことを鑑みると、初心者向けの本を書くというだけで価値があるのやもしれぬ
あなたがライブラリマニュアル作るときに開発環境のダウンロードやプログラミング言語の文法から説明しないのと同じだ
0106デフォルトの名無しさん
垢版 |
2017/11/09(木) 10:27:49.04ID:IVrwQxMl
「単純に意味や役割が似通ってるメソッドを集めただけのメソッド集」を表すものってないですかね
Rubyでいうmoduleみたいなやつ
特にどのオブジェクトに属してるってわけでもない、誰も初期化しなくてよくてすぐメソッドが使えるやつ
いまobjectでシングルトンクラスにしてるけど、なんか漂う特別感に違和感が
0107デフォルトの名無しさん
垢版 |
2017/11/09(木) 12:13:06.41ID:77e4Bz/I
適当なネームスペースで、メソッドじゃなくて関数だけ複数定義したファイルを作ればいいんじゃないかな?
0108デフォルトの名無しさん
垢版 |
2017/11/09(木) 13:29:13.78ID:IVrwQxMl
ああなるほど、packageで分ければいいのか…
シングルトンクラスの中に書くよりはしっくりくる…ような…気が…す…うん、そういうものだと思うことにします
0109デフォルトの名無しさん
垢版 |
2017/11/09(木) 21:56:51.74ID:+8G/D3P4
Kotlinで以下の処理をスマートに書き直したらどうなりますか

int idx = -1;
for (int i=0; i<list.size(); i++) {
  if (list[i].data == data) {
    idx = i;
    break;
  }
}
(idxを使った処理)
0111デフォルトの名無しさん
垢版 |
2017/11/09(木) 22:25:18.35ID:UmUHoiDy
逆引き、ポケットリファレンスものを出して
0112デフォルトの名無しさん
垢版 |
2017/11/09(木) 22:52:38.14ID:+8G/D3P4
>>110
サンクス!まさか1行でできてしまうとは。。
Android Studioに貼り付けてもこうはならないよね
0113デフォルトの名無しさん
垢版 |
2017/11/10(金) 09:13:11.87ID:oAWKYFWM
>>111
とりあえずここで質問すれば答えが書かれるので、後でまとめページを作れば良い。
0116デフォルトの名無しさん
垢版 |
2017/11/11(土) 03:22:51.50ID:xG+5Xfzv
>>115
なんだその国民の妹みたいな表現は
0119デフォルトの名無しさん
垢版 |
2017/11/11(土) 11:27:33.83ID:GExxj/Q0
お前ら「よーし新しく覚えたKotlinのあんな技こんな技使ってコーディングするぞー」
〜 数日後コードレビュー 〜
リーダー「あー、これ全部Javaと同じ感じで作り直しといてネ、ヨロシク」
0122デフォルトの名無しさん
垢版 |
2017/11/11(土) 21:12:50.74ID:F2DPX6tK
>>121
トップがKotlinへの移行を目指して次はKotlinとJavaの混在プロジェクトにするとか言って、
でも所属するチームのトップがJavaしか使わないとかいうシナリオなら、
>>119のような事が起きたとしても>>121の言うような矛盾はない...と思う。
0123122
垢版 |
2017/11/11(土) 21:14:35.14ID:F2DPX6tK
そして逆コンパイルしたJavaを提出して盛大に怒られる...みたいな。

こんなことで連投してスマン
0126デフォルトの名無しさん
垢版 |
2017/11/13(月) 09:38:49.46ID:Ffr39/Md
0128デフォルトの名無しさん
垢版 |
2017/11/15(水) 12:16:34.07ID:XQCt13cq
println(";")
0130デフォルトの名無しさん
垢版 |
2017/11/15(水) 17:33:26.94ID:NOd3J7Vc
そういや print って印刷って意味だよな。もはや時代も変わり誰も印刷してないのにプログラミング言語では print で出力が定番になっちゃったな。
0131デフォルトの名無しさん
垢版 |
2017/11/15(水) 18:04:14.40ID:svkVDlGw
厳密には印字なのでギリギリ合ってる
原初のBASICのPRINT対象はテレタイプだったから印刷するという意図とはそもそもちょっとだけ違う
0133デフォルトの名無しさん
垢版 |
2017/11/15(水) 20:09:08.28ID:hiEIJUlA
ブラウン管に文字を焼き付けるから print

無理があるな。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況