X



Kotlin 3
■ このスレッドは過去ログ倉庫に格納されています
0634デフォルトの名無しさん
垢版 |
2018/06/24(日) 20:40:44.92ID:p+pduEru
そもそも、nullを代入しなければいいのでは?
もしくは初期化しておけばいいと思います

違いますか?
0638デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:05:43.17ID:VUEtZOMW
>>634
初めたばっかで良く分かって無いが、null使わないなら許容する意味が無くね-か
寧ろnullを使う意味が分からない
0639デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:22:24.66ID:YRVrDSwQ
例えばSwiftは言語仕様でnullを抹殺しているが、わざわざOptionalというnullでないものでnullを表現してる。nullがない世界など何処にもないのだ。
0640デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:25:55.36ID:p+pduEru
例えばファイルが読み込めなかった場合、どうなると思いますか?

答えられますか?

答えられるようになったら質問してください。
今はそういうレベルの話ではないです。
0641デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:38:37.19ID:/V8oJSwl
>>630
> なぜnull不許容が必要なのか教えてください
あなたの言う意味では不要。null許容にすることによってプログラミングが不可能になることはない。
nullによって発生する凡ミスが減るというメリットを必要とする人がいる。それだけ。

>>640
> 今はそういうレベルの話ではないです。
わからないで聞いているというより、わかってて煽ってるわけだ。

> 例えばファイルが読み込めなかった場合、どうなると思いますか?
ここでnullを許容する必要があるのではないかと言いたいんだと思うけど、
Kotlinがそうしているかどうはかは別にして、「ファイルが読み込めなかった」という
nullでない値を返すという考え方もある。
null許容のJavaだと例外を投げるところかな。
0642デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:40:24.82ID:p+pduEru
>>639
おっしゃる通りで、結局不正なデータのチェックは必要なわけで、null不許容だから安心して使えるわけでもなく、寧ろ何気にうまく動いている状態が一番怖いです
0643デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:52:05.84ID:p+pduEru
null不許容のクラスを作るとして
そこではあらゆるケースに対処を強いられるわけで、チェック項目は膨大になります
しかしそれを利用する側は単純にファイルが読めるか否かだけ知れればいいとします。
null不許容を取り入れるということは、開発コストが上がることを示唆しているのではないかと

どうですか?
0644デフォルトの名無しさん
垢版 |
2018/06/24(日) 21:54:49.09ID:YRVrDSwQ
Optionalは中身取り出すのにアンラップが要る。Kotlinはnullにならないようにコンパイラがチェックしてるだけ。よってアンラップ不要。副作用としてnullを許容してないのに場合によってはnullが入ってしまうこともある。。
0645デフォルトの名無しさん
垢版 |
2018/06/24(日) 22:02:12.48ID:p+pduEru
>>644
それは実行時の動的なnullですよね。
私が質問しているのは、null不許容型(言い換えれば静的なnullに関して)の必要性についてです。
0648デフォルトの名無しさん
垢版 |
2018/06/24(日) 22:10:34.25ID:GxIVu2Pg
おおかた大学のレポートなり試験なりでその質問をされて回答を探しにきたんだろ
ネットで煽りっぽく聞けばムキになった人が答えてくれるからね、君は賢いね、偉い偉い
0652デフォルトの名無しさん
垢版 |
2018/06/24(日) 23:18:47.64ID:eSenA4KT
>>624
コンパイルする言語なのかインタープリタなのかという問題ではなくて、そういう仕様の言語というだけのこと。
というのはコンパイルしようがしまいが同じような言語は作れるから。
0654デフォルトの名無しさん
垢版 |
2018/06/24(日) 23:25:25.08ID:eSenA4KT
今ちょっと前にAmazon見たらこれのKindole版の方だけ1361円だった。55%offかな。だいたい半額ぐらい。
短期間のセール価格なのかも知れない。

Androidアプリ開発のためのKotlin実践プログラミング 現場で求められる設計・実装のノウハウ
http://amzn.asia/iM5AGQY

紙の本はもう持ってるのにうっかり押しちゃうところだったw
0656デフォルトの名無しさん
垢版 |
2018/06/25(月) 00:03:59.42ID:MQFTLmTQ
>>655
宣伝にはなっちゃうが他に知らせる方法ないよな。
0657デフォルトの名無しさん
垢版 |
2018/06/25(月) 01:08:25.26ID:eZlTEzf8
>>648
だろうな
煽り質問は無視しとけば良い

世の中nullっとしてないと入るものも入らないんだよ
0661デフォルトの名無しさん
垢版 |
2018/06/25(月) 08:59:14.92ID://DXoKuS
とするともう大学で教えてる所があるということになるな
0662デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:02:09.61ID:1p6QEPdQ
null安全な言語はもうずっと前からあるから、それに触れる授業くらいはいくらでもあるでしょ
0663デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:08:55.77ID://DXoKuS
>>657
【審議中】
.   ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u’. `u-u’
0666デフォルトの名無しさん
垢版 |
2018/06/26(火) 06:08:18.39ID:2T7FQdCl
KotlinのターゲットJVMは、Java8の次はOracleJDK 11になるんだろうか、OpenJDK 11になるんだろうか。
0671デフォルトの名無しさん
垢版 |
2018/06/26(火) 15:46:55.60ID:JaGjn0N8
nativeっておもちゃとしては楽しいだろうけど、現実的にそこまでニーズあるかね
0673デフォルトの名無しさん
垢版 |
2018/06/26(火) 19:48:16.67ID:EJ9QuCpH
>>671
まずはおもちゃとして使って楽しんで、それから何かに使えないか考えれば良いのではないかな。
その内なにか丁度良い用途が見つかると思うよ。
0674デフォルトの名無しさん
垢版 |
2018/06/26(火) 21:43:33.91ID:94ok3+r+
趣味で何か作るなら是非使いたいね。
ビジネスプロダクトを作るならまたちょっと話が変わるけど。
0675デフォルトの名無しさん
垢版 |
2018/06/27(水) 07:38:02.49ID:6utZ2/C2
クロスプラットフォームって、出始めの頃のhtmlベースのそび糞達のせいで普及が5年は遅れてると思う。
いまだにあの頃のイメージは抜けきれてない
0676デフォルトの名無しさん
垢版 |
2018/06/27(水) 08:32:56.41ID:mCGbxVOO
Kotlinを選ぶ時点で、既に自分の得意な特定の言語に固執する低レベルな段階を卒業してる人が多いだろうから
無理にKotlin使うよりプラットフォームに合わせた適切な言語を使うべきと考える人が多数派だろうね
0677デフォルトの名無しさん
垢版 |
2018/06/27(水) 08:41:17.54ID:EhxoKQAq
うちもいくつかアプリ作ってるけど、結局それぞれのネイティブで並行開発が1番間違いないって感じになってるな。
Xamarin使ってるのもあるけど、やっぱり色々辛い。RNはもっとアレだったからプロダクトに使う前にやめた。
0682デフォルトの名無しさん
垢版 |
2018/06/27(水) 12:18:58.79ID:+kJys0PI
単純にプラットフォームのバージョンアップに加えて、Xamarinの更新や仕様変更にもついていかなくちゃいけないのが割と大きいんだよね。
レイヤーが1枚増えるぶんこちらの意思とは無関係にメンテしなくちゃいけないものが増える。
0683デフォルトの名無しさん
垢版 |
2018/06/27(水) 18:40:46.48ID:joyJ67qD
ネイティブでクロスコンパイルだとgoがいい感じなんだがいかんせん言語仕様がアレじゃん?
rustもつらみが深いし。
kotlinがそこ狙ってくれないかなー
0686デフォルトの名無しさん
垢版 |
2018/06/27(水) 20:31:33.36ID:9CxCJ+s3
GoはGoogleAppEngineとセットで推されてる感じ
Dartはモバイルアプリに使えるようになったけど、PWAにも対応されるのかな
0687デフォルトの名無しさん
垢版 |
2018/06/27(水) 21:31:14.11ID:/7xWx8r1
Google A 「KotlinはAndroid開発の第一級言語」
Google B 「Dartならクロスプラットフォーム開発出来るよ」
Google C 「社内ではTypeScriptが標準開発言語ですけどね」
Google D 「Goはさらに進化する」
0689デフォルトの名無しさん
垢版 |
2018/06/27(水) 21:54:44.06ID:058nb6Zd
そういうカオスなのがGoogleっぽくて嫌いじゃない
Googleはインド系
Appleは中国系
0690デフォルトの名無しさん
垢版 |
2018/06/27(水) 22:06:52.35ID:M3lpNFO8
Google的にはWebAssemblyはどの言語なんだろ
Kotlin/Nativeを推してくれたりしないものか
0691デフォルトの名無しさん
垢版 |
2018/06/27(水) 22:36:51.97ID:09Lu5AaC
GoogleはSEO最強だからどんなものでもそれなりに凄いもののように見えるけど、
実際にはGoogle自身も全く本気でやってないお遊びレベルのゴミが多いでしょ
Googleって社内的には非常に一貫性の高い独自のプラットフォームがあって、世間のOSSベースな開発とはかけ離れた世界になってるらしいし
0692デフォルトの名無しさん
垢版 |
2018/06/28(木) 05:21:24.48ID:lL281Rpl
ソースは?
0693デフォルトの名無しさん
垢版 |
2018/06/28(木) 08:16:52.30ID:1UW06GNd
googleのソースリポジトリへのコミット要件が割と厳し目なのは有名かな。
その割にgithubにあげてるのはそもそもまともに動かないものもたまにある。
0696デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:01:17.25ID:/DvFOeR7
すみません、どちらに質問させて頂けるのか分からなくてこちらで教えていただければと考えてます。よろしくお願いします。
0697696
垢版 |
2018/07/01(日) 08:15:08.30ID:/DvFOeR7
1 fun func(x:int,y:(Int)->Int)=L(x)
2 func(1,{it*5})

1行目のL(x)は何を意味しているのでしょうか?
また、var y:(Int)->Int={x:Int->x*2}をfunc関数に代入するために
1行目にy:(Int)->Intを引数にして
2行目で、{x:Int->x*2}を実行しているという理解でいいのでしょうか?
0698デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:18:15.23ID:nOlX7v2j
>>681
Unityの「だってお前らこれではゲームしか作らんだろ」という割り切りっぷりは清々しい
ゲーム的文法で作る以外のルートがねえw
0699デフォルトの名無しさん
垢版 |
2018/07/01(日) 10:29:25.00ID:7m3QggRW
>>697
1行目はLという名前の関数にxを渡してるだけ
 fun func(x:int, y:(Int)->Int) {
   return L(x)
 }
の省略表記
ただ、引数のyが無視されているので
L(x) じゃなくて y(x) の間違いなんじゃねって気がする

2行目は代入云々はその理解で合ってるけど
「実行している」のではなく「定義して渡している」
実際そのコードではyが呼ばれてないのでその掛け算は実行されない
0704デフォルトの名無しさん
垢版 |
2018/07/01(日) 19:41:23.70ID:zdyprq44
以前はPASCAL, ML, Haskell、最近なら Scala, Go もこういう形で、
「型 変数」っていう順序のCスタイルの方が本来異色なんだけど。
0706デフォルトの名無しさん
垢版 |
2018/07/01(日) 20:49:55.44ID:8aTW58+O
val name : String = " 名前"
" String "に代入してる感覚があるから、わかりにくのは事実だわなw
0709デフォルトの名無しさん
垢版 |
2018/07/01(日) 21:31:28.10ID:sOb0a/fB
文芸的プログラミングというやつで、
val name: String
はname of Stringと見えるから英語の順序的にはこのほうが自然
0710デフォルトの名無しさん
垢版 |
2018/07/01(日) 21:38:16.02ID:nOlX7v2j
てゆーか>>702の例の時点でさくっと英語理屈を出してあげたほうが混乱がなかったと思う
じゃあなんでC族がそうなってないかって?
Cだからそんな面倒なことしねーんだよお前側が機械に合わせろw
0711デフォルトの名無しさん
垢版 |
2018/07/01(日) 22:01:00.11ID:q7RVjG2e
日本語話者の一般的な認知様式は
鳥の模型>模型の鳥
名前を表す文字列>文字列で表された名前
だし、日本語でも 変数名:型 の方が言語的には自然では
0713デフォルトの名無しさん
垢版 |
2018/07/01(日) 22:26:56.25ID:nicbhK38
言葉的にはそうかもしれないが
抽象度の順じゃないつうのがねー
これがモヤっとする原因

哺乳類>人間>山田
0717デフォルトの名無しさん
垢版 |
2018/07/01(日) 23:01:37.60ID:8aTW58+O
kotlinの基本に慣れる為に

val name : String = " 名前"

"定数"の"name"には"String型"の"値"を入れる

と言う解釈がすんなり行けるかな
0718デフォルトの名無しさん
垢版 |
2018/07/01(日) 23:08:56.02ID:raAwvdUY
val name: String = "..."

"name" is a string: "John Smith"
「名前」は文字列、"山田花子"

打ってる時はだいたいこういう感じの思考の流れがある
0721デフォルトの名無しさん
垢版 |
2018/07/01(日) 23:27:05.41ID:yaDvqYhr
昔々PascalというかDelphiをよく使っていたので変数名、形の順でも違和感なし。
Oracle の PL/SQL も確かそうだったな。

Cも昔からよく使ってるけどね。Javaは趣味で使う程度かな。
0722デフォルトの名無しさん
垢版 |
2018/07/01(日) 23:30:37.32ID:yaDvqYhr
そういやKotlinは val a, b, c : Int みたいに書いてまとめて宣言できないんだっけ?できた?
0726デフォルトの名無しさん
垢版 |
2018/07/02(月) 04:08:17.17ID:M/CoMLX8
>>725
エラー出ないから言語としては良いのでは?

関係ないが>>722で書いたやつは試したらダメだった。
0729デフォルトの名無しさん
垢版 |
2018/07/02(月) 15:54:18.89ID:fF3oZnn5
そうそう型と継承が同じ記法だからごちゃごちゃするよな
どうせならすべて動的型付けにすればよかったのに
0730デフォルトの名無しさん
垢版 |
2018/07/02(月) 16:24:41.26ID:6MU/ELtX
動的型付けだと、存在意義全否定だろ。
Groovyでも使っとけ。
■ このスレッドは過去ログ倉庫に格納されています

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