X



Kotlin 7

■ このスレッドは過去ログ倉庫に格納されています
0220デフォルトの名無しさん
垢版 |
2020/08/04(火) 17:47:41.53ID:DcVqafOY
5ちゃんが高齢化してるなぁと思うのは、Kotlinもそうだけど他の最近流行の言語やらフレームワークやらのスレが全然伸びないところよね
バリバリの若手世代が全然いない
0222デフォルトの名無しさん
垢版 |
2020/08/04(火) 20:38:21.24ID:Bm48LwqI
ここで聞かんでもググれば大抵の事がわかるからな
0223デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:05:28.72ID:Z7zFlWuQ
拡張関数の中での this はその関数を呼び出したクラスのインスタンスになっているわけだが、
その拡張関数の中で object を作った場合はそのクラス内からはどうやってアクセスするのか?
this を使うと object のインスタンスになってしまう。かといって this@拡張関数のクラス にしてもできない。

例えばこれ。

fun String.hogeIterator() = object : Iterator<String> {
 override fun hasNext(): Boolean { .... }
 override fun next(): String {
  /* ここでは substring() 等の拡張関数がアクセスしているインスタンスのメソッドを使えるが
   * this@String はコンパイル時に unresolved reference: @String になって使えない。
   * もちろん this は object を指すので使えない。
   */
 }
}
0224デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:08:45.69ID:wInlBSoO
fun().this(hoge)
みたいな呼び方出来なかったっけ
0225デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:16:22.91ID:Z7zFlWuQ
>>224
ありがとう。 this@hogeIterator でできた。
this@拡張関数名 ということだった。
0228デフォルトの名無しさん
垢版 |
2020/08/21(金) 19:44:31.50ID:T2XB7xYy
まだ違いがわからない
0233デフォルトの名無しさん
垢版 |
2020/08/23(日) 14:01:21.81ID:kDgpNyWc
if式をネストさせる場合、内側のif式ないで早期returnしたいんですがどうすればいいんでしょうか??
val hoge = if (条件) {
 if (条件1)
return hoge値3 <- ここで早期returnで値を返したい
 hoge値2
} else
 hoge値1
内側のifをif elseにもっていけばいいのはわかるんですが、
その後、もっとifの早期returnがたくさんあって・・
0234デフォルトの名無しさん
垢版 |
2020/08/23(日) 14:02:04.28ID:kDgpNyWc
var hoge = if (条件) {
 if (条件)
  return hoge値3 <- ここで早期returnで値を返したい
 hoge値2
} else
 hoge値1
0235デフォルトの名無しさん
垢版 |
2020/08/23(日) 14:34:14.58ID:MgEpWwVh
無理にifの戻り値を使わなければよいのでは?
if (条件)
hoge = hoge値3

もしくは
if (条件) {
if (条件)
hoge値3
else
hoge値2
} else {
hoge値1
}
0236デフォルトの名無しさん
垢版 |
2020/08/23(日) 15:24:28.03ID:kDgpNyWc
うーん。なんかごめんなさい
わけわからないこだわりでしたね・・
おとなしくif else使っときます
0237デフォルトの名無しさん
垢版 |
2020/08/23(日) 16:10:34.01ID:BgU0kmJc
とりあえずベタで書いて放置
3日後に改めて見ると最適化出来る時あるよね
調子に乗ると思わぬ結果でバグるけど
0238デフォルトの名無しさん
垢版 |
2020/08/24(月) 04:02:39.41ID:8Ar+AlN+
>>233
あれ?それ出来なかったっけ?
0239デフォルトの名無しさん
垢版 |
2020/08/24(月) 06:52:54.71ID:5ZrVz87G
ifもラベルつけられた気がするから余裕でできるんでね?
ただそもそもクソコードの香りがプンプンするから、そもそもその部分は別メソッドに切り出すしたほうが良いと直感がいってる
0240デフォルトの名無しさん
垢版 |
2020/08/25(火) 03:35:59.04ID:FtyQX/H1
そもそも >>234 は何をやりたいのか? return 書いたら普通にそのメソッドから return しない?
そうではなくて変数 hoge に hoge値3 を代入させたいの? だったら return じゃなくて普通に else 書いてやれば良いだけだし、
それではブロックが巨大で見辛いというのであれば別にメソッド作って外に出せば?
0242デフォルトの名無しさん
垢版 |
2020/08/25(火) 07:53:18.31ID:RPvgPVWb
>>233です
でも元からそこまででかくなかったです
if (条件1)
 値1 <- 1行
else if (条件2)
 値2 <- メソッド呼び出しの1行
else if (条件3)
 値3 <- メソッド呼び出しの1行
else {
 //
 // <- 13行くらい
 //
 値4 
}
else ifでやると1行、1行、1行、13行くらいで、すげぇ尻だけでかだったので気になったのです
で、とりあえず、最後の13行を一つ別にメソッドに追い出して、最後を4行にもっていけました
0243デフォルトの名無しさん
垢版 |
2020/08/25(火) 07:58:14.54ID:RPvgPVWb
でも、正直、このレベルだったので、if文で早期returnできた方がいいし13行くらいはそのまま書きたいですね
0244デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:03:18.20ID:OtGEs4k+
>>243
メソッドとして切り出すかどうかの判断は行数よりもそのコードの意味の単位を基準にするといいよ
0245デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:06:41.76ID:OtGEs4k+
すごい抽象的な言い方しちゃったごめん
わかりやすいやり方だと、その処理で何をやってるかをそのままメソッド名にすれば分かりやすい

例えばgetNameAndSaveName()みたいになるならこれはgetとsaveに分けるべきだと明らかにわかる
0247デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:24:01.90ID:RPvgPVWb
android studioで警告はでてないですね
whenも考えたのですが、なんかどうもまだしっくりこなくて使ってません
もちろん、when (式) {}形式は使いますが、
when { bool式 ->, bool式 -> , else -> }このタイプは・・
0248デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:33:07.94ID:RPvgPVWb
>>244
もちろん、そうですけど
再利用されるならまだしも>>242のifを含むメソッド自体も>>242含めて、計30行くらいだったので
そこまで頑張って外に追い出してと思った次第です
そこは自分の適当なバランス感覚でやってます
0252デフォルトの名無しさん
垢版 |
2020/08/30(日) 11:54:12.41ID:vjTKHF/s
>>251
サンクス。やっぱKotlinの人はスマホが多いのかね。
サーバーサイドだとみんな他に何使ってるんだろう。
まだまだRails多いのかな
0253デフォルトの名無しさん
垢版 |
2020/08/30(日) 12:27:06.28ID:bk9ybW3K
うちはJava/SpringBootからKotlin/SpringBootにした
サーバーサイドKotlinはJavaからの移行組が結構多いんじゃないかと思う
次にやるならやっぱりGoかなと思う
0254デフォルトの名無しさん
垢版 |
2020/08/30(日) 12:35:38.68ID:fDI7uJsO
Goって糞じゃね
なんで2020のいまどきポインタとか使わないといけないんだよ
スライスもなんか微妙やし
railsみたいに色んな便利機能が最初からないのも糞
大体Google自体もWebアプリ向けに作ったというより
C言語代替を目的に作ったんじゃないの
0255デフォルトの名無しさん
垢版 |
2020/08/30(日) 13:06:57.56ID:bk9ybW3K
>>254
全くその通りでGoはホント糞だと思う
でもFargate/マイクロサービス構成にした時にJVMが積み上がってメモリキツキツもつらい
Goの代替としてKotlin/Nativeに期待してたけど全然完成しないし、
Rustも入門してみたけど開発メンバ全員でこれをやるのは無理だなと思った。
なのでマイクロサービスやるんなら選択肢はGoしかないのかなって思ってる
0256デフォルトの名無しさん
垢版 |
2020/08/30(日) 13:20:08.16ID:5iQunAT3
気の利いた機能は排除する代わりに
アホでも書けるように設計してるんだろうな
分かってる人にとっては使うとイライラする
0257デフォルトの名無しさん
垢版 |
2020/08/30(日) 13:22:05.33ID:yOhH+mxx
GoとKotlinは使い所が違うわなー
Goはまさにマイクロサービス向きで、Spring Bootで作るようなものにはまったく向いてない
0259デフォルトの名無しさん
垢版 |
2020/08/30(日) 14:25:06.58ID:bk9ybW3K
jetbrainsがさっさとJSとかモバイルを諦めて、
Kotlin/Native(完成版) + SummerBoot(SpringBootのKotlin/Native版)を
出してくれたら俺のモヤモヤは全部解消する
0260デフォルトの名無しさん
垢版 |
2020/08/30(日) 14:41:42.24ID:Kgnw5LZN
Goの何が駄目といって名前がほんとうにクソ
0265デフォルトの名無しさん
垢版 |
2020/08/31(月) 22:28:16.28ID:o9UB16MR
GoでマイクロサービスするならfargateよりもGAEの方が良いよ
fargateというかAWS自体重厚すぎる
0266デフォルトの名無しさん
垢版 |
2020/09/01(火) 13:49:50.85ID:HPYjIMXq
>>255
同意
0267デフォルトの名無しさん
垢版 |
2020/09/03(木) 01:24:44.12ID:/jT+DP04
Goはこの時代に作ってなんやこのクソ言語ってなるのに使いどころあるところが、良くわかってるんだよなぁ
0268デフォルトの名無しさん
垢版 |
2020/09/03(木) 11:44:56.18ID:bck6w86S
Goはせめてジェネリック対応してくれ
ジェネリックもない言語とか今どきアホか、としか思わん
0270デフォルトの名無しさん
垢版 |
2020/09/04(金) 10:54:31.12ID:BpK2cgTn
モノリシックに作ったサービスを売れてきた段階でマイクロサービス化できるのが真の理想
現状それはGoでもKotlin/JVMでもやりづらい
なので、みんなもっとKotlin/Native&SpringBoot的なFWに期待しようぜ
0273デフォルトの名無しさん
垢版 |
2020/09/16(水) 20:47:09.88ID:lj6HLAl6
そうか。じゃあそろそろGoの学習でもするか。
0275デフォルトの名無しさん
垢版 |
2020/09/19(土) 02:20:24.71ID:Vwp+/AeQ
ネイティブやるならrustの方が良くない?
kotlinの存在意義ってjavaのライブラリが利用できる事だと思ってた。
0276デフォルトの名無しさん
垢版 |
2020/09/19(土) 16:43:04.49ID:HLFklpM8
JAVAのライブラリと互換性のあるネイティブのライブラリは作りやすいのではないかな
0277デフォルトの名無しさん
垢版 |
2020/09/19(土) 16:52:33.54ID:Vwp+/AeQ
なるほど。
0278デフォルトの名無しさん
垢版 |
2020/09/19(土) 17:44:18.38ID:cAF7RylC
オラクルの訴訟の関係で、Javaライブラリの互換ライブラリは、今は誰もやろうとしないだろう
0281デフォルトの名無しさん
垢版 |
2020/09/24(木) 21:05:14.57ID:UuOLxhHX
ま、今のところはな・・・
0285デフォルトの名無しさん
垢版 |
2020/10/12(月) 20:09:38.21ID:3myqygF8
次のプロジェクトのサーバーサイドを
kotlinにするかgoにするかで揉めとる。
goってそんなにいいの?
0286デフォルトの名無しさん
垢版 |
2020/10/12(月) 20:51:58.16ID:PPv56FHl
その2つで揉めることある?
どんな性質のものを作るかで自ずと決まりそうだけど
0288デフォルトの名無しさん
垢版 |
2020/10/12(月) 23:40:50.80ID:eFX4wIRa
>>284
少し前まではsyntax heighlightが効かなかったりしていたけど、
今ではgroovyで書くときよりIntelliJの補完やIntelliSenseがよく機能していると思う。
0291デフォルトの名無しさん
垢版 |
2020/10/13(火) 08:20:05.71ID:ZNus3TRK
goとこちょりんで揉めるのがどういう状況なのか想像できない
何を作ろうとしてるんだよ
0292デフォルトの名無しさん
垢版 |
2020/10/13(火) 08:26:15.72ID:D04kvfV3
まずググラビリティの話になるけど余程気の利かない人以外はgolangで検索されるようにしてるよ
0293デフォルトの名無しさん
垢版 |
2020/10/13(火) 13:20:04.16ID:GnzXgn2/
GNU Go が出ました。
0294デフォルトの名無しさん
垢版 |
2020/10/13(火) 13:31:20.06ID:y5Oy6HcC
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない
0295デフォルトの名無しさん
垢版 |
2020/10/13(火) 21:31:22.68ID:SAmaeGZN
つーか、goはグーグルがつくったんだから
最初からググラビリティのことぐらい考えとけ、っていう
0298デフォルトの名無しさん
垢版 |
2020/10/14(水) 10:42:02.47ID:5QXB1j1n
>>285
goにはjvm使わなくてもいいという利点がある
なのでモノリシックにするならkotlin
サーバーレスにするならgo
0299デフォルトの名無しさん
垢版 |
2020/10/14(水) 11:28:02.65ID:4PyCS5rX
>>298
モノリスとサーバーレスは対になる概念じゃないからその判断軸はおかしい。なんでアプリケーションの構成の話とインフラの構成の話で比較してるのよ。

どういうものを作るのかで変わるっていうのは完全に同意。
0300デフォルトの名無しさん
垢版 |
2020/10/14(水) 11:32:15.05ID:GsUUoEHv
>>297
物知りですね判ります
0301デフォルトの名無しさん
垢版 |
2020/10/14(水) 11:48:46.02ID:8tU2UIMd
テック系のユーチューバーってちょっと前はとんでもないのばっかだったけど、最近は違うのかな
0302デフォルトの名無しさん
垢版 |
2020/10/14(水) 12:45:33.14ID:qpMvVLdo
>>294
初心者に対して「王道」とか言う奴は詐欺師か素人なので、信じるやつはアホとしか言いようがない。
0303デフォルトの名無しさん
垢版 |
2020/10/15(木) 20:09:16.65ID:Iyp/m7Oy
そもそもYouTuberなんて基本的に信者を作ってそこから何かしら金を巻き上げるのが仕事だからな
現実的な話をするより分かりやすくてキャッチーな話をするものだろ、そっちの方がウケるから
0304デフォルトの名無しさん
垢版 |
2020/10/16(金) 12:19:42.51ID:yka6Eg2o
じゃあ Kotlin の話をすれば常に再生数Maxだね。
0305294
垢版 |
2020/10/16(金) 12:36:42.23ID:jOsz+QQ/
YouTube で有名な雑食系エンジニア・KENTA は、日本一!

初心者が進む道を、サーバー側言語のRuby → Go を王道としてる。
この2つ以外は、出てこない

嘘がばれるから、他の言語を言えない

例えば、Python, Kotlin を勧めても、
仕事が少ない・取れないとか、難しいとか

唯一、Rubyで、サーバー側を1, 2年やれば、
10年以上のベテランに勝てるから、そこだけを狙っているわけ。
一種のチート技

他の言語では、初心者がベテランに勝てないので採用されないず、苦情が殺到するから
0306デフォルトの名無しさん
垢版 |
2020/10/17(土) 17:29:59.88ID:mDjHOg10
1、2年どころか半年でベテランに並べるみたいなことをいってる奴多すぎだよな、最近
んなわけねーだろとしか言いようがないんだけど
0307デフォルトの名無しさん
垢版 |
2020/10/17(土) 23:52:45.22ID:DGPCkU6w
苦情って客先常駐か
そんな根無し草みたいな生き方じゃなく正社員目指せよ
0308デフォルトの名無しさん
垢版 |
2020/10/18(日) 01:56:06.71ID:SXAbafYI
>>307
大手のITベンダーでも客先常駐の正社員腐るほどいるぞ

苦情 = 客先常駐 = 非正規って発想がヤバい
0311デフォルトの名無しさん
垢版 |
2020/10/18(日) 09:45:27.90ID:KfA/pWR3
現場によるとしか言えん。自分の経験の範囲内では半々くらい。
それに疲れたから今は自社サ作ってる。
0313デフォルトの名無しさん
垢版 |
2020/10/18(日) 12:35:36.33ID:RuEhBFPq
自社サービスできる開発以外は実質派遣だからな
お前らが売ってるのは技術じゃなくて
使い捨てにできる労働力というサービスだ
0314デフォルトの名無しさん
垢版 |
2020/10/18(日) 13:13:36.85ID:blBq09P/
年収1500万のコンサルタントでも普通に客先常駐する

正社員目指してる君が知らないだけ
0317デフォルトの名無しさん
垢版 |
2020/10/19(月) 12:22:57.62ID:OC11jFNG
同じスタートラインってまさに未経験者を騙してるインフルエンサーがよく言ってるよな
同じスタートラインなのはエンジニアとしたある程度普遍的な経験値を積んだもの同士の話であって、未経験者がいきなりそこのラインに立てるわけでは無い
0318デフォルトの名無しさん
垢版 |
2020/10/19(月) 15:14:20.17ID:liiL750E
このスレの人からしたら馬鹿らしい質問かもしれませんが教えてください

ボタン等の押下処理を記述する際、
リスナを使った実装とonClickでメソッドを使った実装、
どのように使い分けるべきでしょうか?

こういう場面ではこっちが優れてる、或いはそもそもどんな場面でもこっちの方が優れてるとかあれば教えて欲しいです
■ このスレッドは過去ログ倉庫に格納されています

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