X



Kotlin [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0568デフォルトの名無しさん
垢版 |
2017/08/22(火) 02:31:08.97ID:tq0/mRJT
Kotlinなんて最新言語じゃなくて
何十年も前のBASICやCの頃から
互除法の例題はあったよ
0569デフォルトの名無しさん
垢版 |
2017/08/22(火) 02:37:43.49ID:i38qdLYb
正直あれは脚注でもなんでもいいから一言解説がついててもいいと思う
どこかで一度でもやったことさえあれば一発で見当がつくが
そうでなきゃ何がなんだかさっぱりわからんはずだ
0571デフォルトの名無しさん
垢版 |
2017/08/22(火) 02:49:09.46ID:tq0/mRJT
Nクイーンとかもそうだけど
使い回されてるアルゴリズムを載せるのって
他言語でもう読み書きしたことがある人が
「この言語だとどう書くの?」ってのを
確認するためにあるようなものだからね
0572デフォルトの名無しさん
垢版 |
2017/08/22(火) 12:09:02.60ID:IWEK7hu0
「※ユークリッドの互除法」と一言書いてあるだけで100人単位で手間が救われたはずではある
もともとページ数ギリギリな書籍だから難しいのかもしれんが
0573デフォルトの名無しさん
垢版 |
2017/08/22(火) 12:48:19.23ID:AcxdB0/s
ま、しかし、少なくとも計算に関しては数学知ってるか否かでかなりプログラムが変わって物凄く効率化できる可能性あるな。
0575デフォルトの名無しさん
垢版 |
2017/08/22(火) 14:14:28.90ID:IVfvVmbm
ユークリッドの互除法は、中学生レベルだろ。
知らなかったら、最大公約数を求められない

プログラムの本で、素数を求めるのに、√N まで、求めれば良いのに、
それを知らない著者もいる

N = 1,000 なら、32 まで試せば良いのに、1,000 まで試してる著者もいるw
0576デフォルトの名無しさん
垢版 |
2017/08/22(火) 14:21:03.39ID:IWEK7hu0
>>575
ユークリッドの互除法は4年前から高校の数学Aに記載されるようになった
それ以前では教育課程では学ばない
0577デフォルトの名無しさん
垢版 |
2017/08/22(火) 16:24:42.17ID:ZXHHpxC4
>>574
使うこともあるよ。使った方が簡単になる場合。

こないだやったのは(Kotlinではないが)XMLの階層構造をRDBの表に入れるとかそこから戻すとかの処理。
XMLって入れ子になってるから再帰で書いた方が楽だ。というか再帰使わないと複雑怪奇なプログラムになるんじゃないか?
0578デフォルトの名無しさん
垢版 |
2017/08/24(木) 02:30:54.84ID:YbxxOGZ9
互除法は繰り返しでもわりと自然にコーディングできるが、XMLとかの木構造の処理は再帰が自然だよね。
0579デフォルトの名無しさん
垢版 |
2017/08/31(木) 23:08:32.05ID:67nUNCV4
operator キーワードの意味が良く分からないんですがこれって何のために必要なんでしょうか
0580デフォルトの名無しさん
垢版 |
2017/08/31(木) 23:18:11.21ID:pWykFKbQ
>>579
operatorが書かれてない場合はそういう名前の普通のメソッド定義だとみなされる
operatorが書かれてる場合はそれに対応する記号の演算子のメソッド定義だとみなされる
0581デフォルトの名無しさん
垢版 |
2017/09/01(金) 15:48:55.97ID:yBuOlbxF
ギアパワーの組み合わせで性能が見れるアプリを作ってみようかと思うんだが、
どういう機能があったら嬉しいかね
単に57表記が見れるだけじゃ意味ないよねえ
0582デフォルトの名無しさん
垢版 |
2017/09/01(金) 16:36:37.15ID:xNWoFI1L
それはプログラミング言語の手法の話ではないと思うよ
そのアプリを使うであろう人たちに直接聞いてみてはいかがかな
0584デフォルトの名無しさん
垢版 |
2017/09/07(木) 03:43:26.98ID:Ua+ABG0j
ミスった

引数がIntのメソッドにByteとかShortとかつっこみたいときの賢い方法ってない?
いちいち.toInt()付けるのアホらしくて
…いっそのこと全部Intにしてしまうか
0587デフォルトの名無しさん
垢版 |
2017/09/07(木) 18:23:41.25ID:dmOyOqaZ
「引数をとりあえずIntにして当該メソッドを呼ぶ」というメソッドを作ってそっちを使うようにする
具体的にどういうことをしたいときなのか言うと案外別アプローチあるやもしれず
0588デフォルトの名無しさん
垢版 |
2017/09/07(木) 18:50:45.76ID:dJGmlTPD
拡張プロパティで短縮

val Byte.i:Int get() = toInt()

fun f(b:Int) {
println(b)
}

fun test() {
val b:Byte = 100
f(b.i)
}
0589デフォルトの名無しさん
垢版 |
2017/09/07(木) 21:28:09.40ID:wVi6dnoF
>>586は何気にbytecodeにコンパイルすると最速処理に最適化されるのではと悩む
val b:Byteはクラス型じゃなくプリミティブ型intに置換されて、+0は無意味な処理として削除される的なね

toIntoをメソッドとしてコールするようなオーバーヘッドは無いに越したことはないよねー
0590デフォルトの名無しさん
垢版 |
2017/09/07(木) 21:37:35.68ID:10GmZssK
class MainActivity : AppCompatActivity() {
  fun func(value: Int) : String {
  }
}

: の前って空白をいれるべきなんでしょうか
入れないでおくべきなんでしょうか
クラスの継承の時だけ入れるべきなんでしょうか
0592デフォルトの名無しさん
垢版 |
2017/09/08(金) 10:15:45.38ID:IL9yY2pX
関数定義の時はコロン前の空白無しって感じか
0593デフォルトの名無しさん
垢版 |
2017/09/09(土) 05:04:55.71ID:/lYAOhx7
>>589
それはオーバーヘッドが出ないように最適化されるのかどうかに掛かっている。
0594デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:18:44.00ID:8E3FMuHj
>>593
後から思い直したけど、メソッドfがByteクラスというクラス型を受け取る以上
val b:Byte = 100
b+0
までをプリミティブ型に最適化する超絶賢いコンパイル処理がなされても
f(100)
でintからByteへのインスタンス生成が必要だからJVM上の最小限コストにはならぬ
小賢しく汚いコードの割に最大効果が得られるわけでもないから微妙だわ
0595デフォルトの名無しさん
垢版 |
2017/09/09(土) 21:51:29.93ID:fgzL7F9C
>>594
f(100)と書いたならコンパイル時にインスタンス作ってコンスタントプールに入れられるから実行時の無駄はないのでは?
0596デフォルトの名無しさん
垢版 |
2017/09/09(土) 23:45:06.02ID:8E3FMuHj
# メソッドfが受け取るのはByteじゃなくIntだったorz

>>595
プリミティブ型byte/int 100はコンスタントプールに乗っかるけど
クラス型Byte/Int 100はコンスタントプールには乗っからないから
メソッドf呼び出し時のint to Intのインスタンス化コストは回避できてなくね?
メソッドfが受ける型をJITやクラスローダーが書き換えないと無理ぽ

どうやったってJava相当まで最適化できないんだから
全部Intにするなり拡張プロパティ使うなり、好きなように実装して良いと思った
0597デフォルトの名無しさん
垢版 |
2017/09/10(日) 01:33:16.68ID:3lFSiHDa
乗らないか。じゃあダメだな。
まあでもそこまで最適化するようなコンパイラができればできるということでもあるので何とも言えんな。

それとプログラマが最適化を考慮してコード書くってのは、まるで昔のC言語のようで、かなり変な状態だとも思える。
現実問題としては効率を上げるためにはそうせざるを得ないが、本来であればそれはコンパイラがやるべき仕事であり
人間がそういうことから解放されないのはまだ技術力が足りないからだ。
0598デフォルトの名無しさん
垢版 |
2017/09/10(日) 11:34:35.85ID:tQxxVHdc
100は例なだけでtoInt云々の文脈では定数でなく変数でしょ

KotlinのByte/Intはオブジェクト型が必要なとき以外はプリミティブ型になる
さらにJVMのスタック上でbyteはintサイズで置かれてる
 ※例えば引数の2つのbyte型の加算は「iloadでint変数として読み込み x2」「int加算」「i2bでbyte表現に切り捨て」「istoreでintとして保管」になる

なのでtoIntはバイトコードレベルではメソッドコールどころか変換命令すら無く消滅する
+0や拡張プロパティはバイトコードに残るけど多分Dalvik JITやARTが消すんじゃないかな
0599デフォルトの名無しさん
垢版 |
2017/09/10(日) 23:39:27.48ID:Aa/cPztt
0〜127 なら、最初から、EXE の静的データ領域に入っているから、

インスタンスも作られないから、何も考えなくてよい
0602デフォルトの名無しさん
垢版 |
2017/09/11(月) 09:40:07.36ID:vJ3AiMg+
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK)  プログラマーズ
0603デフォルトの名無しさん
垢版 |
2017/09/14(木) 14:48:20.23ID:ZrYTexa1
Kotlinを使えば使うほど、Kotolinってええ言語やなと思う
サーバーサイドでも使われているようだし、この言語はやる価値があるね
0606デフォルトの名無しさん
垢版 |
2017/09/14(木) 15:35:41.46ID:EfU1+ylv
>>604
動的ではない

どちらも適材適所、釘にはトンカチレベルの話だが、デメリットとして挙げるなら
0611デフォルトの名無しさん
垢版 |
2017/09/15(金) 11:20:35.63ID:t0O3AeYk
>>604
言語自体のデメリットではないかもしれないが、
IDEの選択肢がない・開発補助ツールなどが未発達。
0612デフォルトの名無しさん
垢版 |
2017/09/15(金) 18:58:50.23ID:Tu1mqslW
>>610
コレはでかい。正直この知識を簡単に獲得する方法あるの?
kotlinからjavaの世界に入る方法を知りたい。
0613デフォルトの名無しさん
垢版 |
2017/09/15(金) 21:05:06.50ID:iYxiAtrq
そういやJavaの知識なしの人向けの入門書はまだないのかな?
なくても流行ればその内出そうだが。
0615デフォルトの名無しさん
垢版 |
2017/09/16(土) 07:58:31.08ID:AcW1bn43
Javaって一番メジャー言語だから
情報が溢れてると思うんだが……
マイナー言語の苦しさに比べたらはるかに楽
0616デフォルトの名無しさん
垢版 |
2017/09/16(土) 08:06:32.31ID:wHRqrpim
Javaを既に知っている者ならそうだろうな
Javaを知らずにKotlinやると、KotlinとJavaを並行して学習することになるから面倒だって話だ
0617デフォルトの名無しさん
垢版 |
2017/09/16(土) 09:13:19.33ID:dqmaxFWN
kotlinはJavaのスクリプト言語みたいな立ち位置だからな(コンパイル要るけど)
Java入門が巷に溢れているがゆえにKotlin+Javaの書籍は出しにくいかもしれん
それにしたとしても時間が解決していくではあろう
0618デフォルトの名無しさん
垢版 |
2017/09/16(土) 09:53:29.49ID:64cU0LXO
Kotlinで開発してたとして、具体的にどういうときにJavaの知識が必要になるんだろう?
JVMに関してなら「言語+実行環境」だから他の言語と変わりないし
Javadocのシグネチャくらいで困ることは無さそうだし

多分、解説書く側も「何が分からないのか分からない」状態になってるんじゃないかな
0619デフォルトの名無しさん
垢版 |
2017/09/16(土) 10:25:55.20ID:7CqADWEJ
>>607
JSもJVMもランタイムがいると思うけど、このランタイムってApache2.0ライセンスなのかな?
だとしたら、同梱した場合、表示が必要になるんだっけ?
0620デフォルトの名無しさん
垢版 |
2017/09/16(土) 10:55:31.44ID:9wmYZqGr
>>618
こういうことをJVM上でやりたいなぁって思った時に、Javaでの実装手法を調べてKotlinで読み換えるわけだろ?
その時にまずJavaの全般的な知識(文法, ライブラリ)を浅く広く手に入れる所から始まる
次に、JavaからKotlinに読み換えるために文法/ライブラリの在り様を深く理解してから適切なKotlinコードに書き下す
JavaとKotlinの生半可な知識だけでJavaコードを参考にKotlinコード書くと、汚いKotlinコードになるよね

なので、絶賛Javaを再勉強中・・・Java1.5の頃の知識で止まってるからイマドキのJavaが分からない
java.langとかNIO2とかを使ったコードをKotlinでいきなり書こうとしたら何か違う感が酷くてやめちまったよ
0621デフォルトの名無しさん
垢版 |
2017/09/16(土) 11:21:42.95ID:QlT8cqjN
他の言語を知ってれば要はリファレンスとjava特有の注意事項があればいいと思うの。
文字列組み立てにはStringBuilder使えみたいなの。

そういうの無い?
0622デフォルトの名無しさん
垢版 |
2017/09/16(土) 11:42:24.85ID:zsfdrVgC
android studioってkotlinのプロジェクトにjavaのコードを貼り付けたらkotlinに変換してくれる神機能があるから
泥開発する時にネットで拾ったjavaのコードをペタペタコピペプログラミングするだけでも勉強になる

javaもkotlinも知識皆無の状態でkotlinで泥アプリ開発に取り組んだら見様見真似で簡単なアプリ作れた
ある程度コピペしてたらjavaのこの書き方はkotlinではこう書きそうっていうのがなんとなく察せてくるからandroid studioの補完を頼りに写経したりする

javaも知らないけど新しく言語の知識学ぶなんて面倒くさいからヤダ!知識皆無だけどすぐ何か作りたい!hello wordとか練習問題みたいなの書いても面白くないからモチベーションわかない!すぐ作りたい物作りたい!って場合は
ネットのサンプルと強力なIDEの支援を頼りにコピペ写経するのが効率よさそう
(外国語ができなくても海外でしばらく生活したら知識的に習わなくてもだんだん喋れるようになる理論)
0623デフォルトの名無しさん
垢版 |
2017/09/16(土) 12:49:19.86ID:64cU0LXO
>>620
Kotlinで書かれたサンプルコードが少ないってこと?
それについては自動変換で対応するか、Kotlinが広まってサンプルが増えるのを待つしか無いか
0624デフォルトの名無しさん
垢版 |
2017/09/16(土) 12:50:15.30ID:64cU0LXO
それと思ったのはKotlin・・というよりプログラム初学者は
言語仕様、ライブラリ、プラットフォームの知識がごちゃ混ぜになってるのかも

「Java言語仕様の知識前提」の場合はデメリットだけど、後者2つはそうではないんだよね
ちゃんと切り分けて教える必要があるのかもしれない
0625デフォルトの名無しさん
垢版 |
2017/09/16(土) 15:17:58.69ID:iyhV3x2n
>>620
一々Javaで考えてからKotlinに読み替えるのではなく最初からKotlinで考えればいいのでは?それは出来ないの?
0626デフォルトの名無しさん
垢版 |
2017/09/16(土) 15:51:26.67ID:zchkTGlK
前途洋々たる人にJavaを教えたいかというとそうでもない、しかし現状kotlinにはjavaの知識がいくらか必要というジレンマ
0628デフォルトの名無しさん
垢版 |
2017/09/17(日) 09:11:08.18ID:e3nYUfGU
kotlin変換はスニペット単位で変換挿入できれば初学者サポートとして文句ないんだけど
まあ高望みしても仕方ないなw
0629デフォルトの名無しさん
垢版 |
2017/09/17(日) 09:16:06.15ID:s1Tpc6AU
Kotlinを使い始めるのにJavaから始めないといけないのも高望みだから仕方ない
JVMとJava LibraryありきなんだからJavaを知らないで何が始まろうかと理解している
0630デフォルトの名無しさん
垢版 |
2017/09/17(日) 10:57:51.48ID:iGeioDqi
>>628
騙されたと思ってandroid studioでkotlinを開いてそこにjavaのスニペットをそのまま普通に貼り付けてみ
0632デフォルトの名無しさん
垢版 |
2017/09/17(日) 20:10:21.20ID:881Zhju6
kotlinというかIntelliJはなにかにつけてUnresolved Referenceで発狂して真っ赤になるのを潰していかんといかん
全部自前のkotlinファイルとパッケージだけで構成すれば絶対に起こらん事象だが、そんなのは稀だ
0633デフォルトの名無しさん
垢版 |
2017/09/17(日) 20:33:40.63ID:8Aq7R6E2
>>632
あれはライブラリ作者とプラグイン作者が7割くらい悪い
提供されるテンプレートでjavaパッケージのimportの不足(しかもbuild.gradleに依存関係未記述)とか勘弁して欲しい
ていうかこれ作者のとこではどうやって動いてたんだ…
0635デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:46:47.81ID:KEjrNeQk
昔のEclipse環境下開発みたいなトラブル起こしてんなw
libs/*.jar と .classpath をコミットしてなくて、ライブラリ実装者とライブラリ利用者で環境が合致しないとかよくあった

build.gradleで依存管理してないなら、libs/*.jar と .idea/ で管理してるんじゃないのかね
ビルドできねーよってIssue発行して、build.gradleで依存管理するように直してもらおうぜ(Kotlinと全く関係ない話題
0636デフォルトの名無しさん
垢版 |
2017/09/19(火) 01:56:04.30ID:q5GM4Sdx
TornadoFXは面白そうだなと思って手を付けた瞬間
・TornadoFXのDSL記法では思った通りに動作しないがJavaFXでは動く
・JavaFXではうまく動かないがswt直呼びでは動く
・JavaのGUIアプリケーションではあまり得意ではない
の3者が混然一体となってGUI初心者に襲いかかってきた荒野の印象しかない
GUIやるのさぼってきたツケもあるしkotlin関係ないけどな
0637デフォルトの名無しさん
垢版 |
2017/09/19(火) 02:57:40.00ID:33S+M35U
FXには手を出すなって死んだばっちゃが言ってた
0638デフォルトの名無しさん
垢版 |
2017/09/19(火) 03:13:01.72ID:NsD/KMp/
HTTPプロトコル受けるようにして、GUIはHTMLとjavascriptでブラウザ任せでやる方がいいんでね?
0639デフォルトの名無しさん
垢版 |
2017/09/19(火) 11:33:34.11ID:yNuGs4H1
とるねーどFXのDSL記法は初心者の「こうかな?これなら動くかな?」という学習の試行錯誤を念入りに潰してバグに変えるプロ
設定記述手法以外のDSLなんてまあたいていそんなもんだが
どうしてもPCでGUI欲しくてなにもわからない最初ならJavaFXにするのがよいよ
0640デフォルトの名無しさん
垢版 |
2017/09/19(火) 23:03:32.67ID:yNuGs4H1
>>630
IntelliJではできんことのほうが多いね
完動するJavaのクラスのファイルとかそういうでっかいのか意味のあるわかりやすい小さいやつとかじゃないとまず無理
それでも便利だろうという指摘はもっともだが
0641デフォルトの名無しさん
垢版 |
2017/09/20(水) 00:55:44.49ID:yi4mI7ko
tornadoFXで丸1日悩んでいたことがJavaFXでは1時間でできたなんていう笑い話が…
別にこれに限った話じゃないけど、今から何か始めたいって人は「kotlin対応新鋭フレームワーク!」みたいな宣伝には騙されずにJava製のでいいからメジャーなやつを選ぼうね
たいていkotlinでの書き方みたいなのが公開されてるからそれで充分さ
0643デフォルトの名無しさん
垢版 |
2017/09/21(木) 00:08:50.00ID:fijEecfV
そこそこの長さの文字列をわかりよく文字列のリストにする方法ってないですか
"ABCDE".toList()だとCharのリストになってmapとか繋げて変換がいります
"ABCDE".split("")だとなんか7つのリストになります
文字境界の正規表現を指定すればいいような気もしますが探せませんでした
0644デフォルトの名無しさん
垢版 |
2017/09/21(木) 03:27:44.93ID:AcIIQNEl
>>643
"ABCDE".split("(?=.)") ではどうか?
0645デフォルトの名無しさん
垢版 |
2017/09/21(木) 11:28:55.55ID:fijEecfV
>>> "ABCDE".split("")
[, A, B, C, D, E, ]
>>> "ABCDE".split("").size
7
>>> "ABCDE".split(Regex("(?=.)"))
[A, B, C, D, E]
おお、ありがとうです
しかしありそうでないのねStringで分けるやつ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0647デフォルトの名無しさん
垢版 |
2017/09/21(木) 21:11:04.25ID:fijEecfV
だからそれだとStringをCharにしてからStringにするという手間がかかっ

for(int var6 = 0; var6 < var5.length(); ++var6) {
char item$iv$iv = var5.charAt(var6);
String var13 = String.valueOf(item$iv$iv);
destination$iv$iv.add(var13);
}

…ってなかった。最近の言語のコレクションのmapとかあのへんのメソッドは空気を読んでて困る(えらい)。じゃあこれにします
0648デフォルトの名無しさん
垢版 |
2017/09/23(土) 03:05:43.18ID:LuIx8rlF
Kotlinは配列というかリストになんか入れるとエラーで二度と引き出せなくなるのが嫌
何か不都合があって引き出せないのなら最初から弾いてくれ
0652デフォルトの名無しさん
垢版 |
2017/09/23(土) 10:14:30.20ID:Fr4ObNsJ
あのへんは型とか継承とかの理解きちんとしてないとちょっと複雑なの入れたときものっそいエラーになるよ
適当に書いて適当に使ってると動くと見せかけていざというとき詰まる箇所ベスト3に入ると思う
0654デフォルトの名無しさん
垢版 |
2017/09/23(土) 13:45:04.86ID:HgJ0Nznd
コレクションって色々種類があって、
問題によって適切なクラスを選ぶべきとか言っていたくせに
mutableListはmutableListしか種類ないし、それで別に問題がないってどういうことだよ
フィールドもprivateにしてsetter, getterからアクセスしろとか言っていたくせに
プロパティアクセスは実質フィールドをpublicにしているのと変わりないじゃねえか
その他、継承は良いことだからたくさん使って活用していこうとか言っていたくせに
openをつけないと継承できなくして、実質継承は推奨しないみたいになってるのなんなん
嘘ばっかり言いやがって
0655デフォルトの名無しさん
垢版 |
2017/09/23(土) 14:17:09.35ID:8bsZ0VcP
>>652
「のっそい」って何処の方言?沢山って意味?
0657デフォルトの名無しさん
垢版 |
2017/09/23(土) 15:29:22.72ID:vuIl3Vgh
プロパティアクセスは、publicなフィールドへのアクセスと違って、
setを制限してgetだけにできるし、
setするときの値チェックなんかもできるし、
privateフィールドをsetter/getterでアクセスする利点はそのままに、
使うときの表記をシンプルにしてくれる
0658デフォルトの名無しさん
垢版 |
2017/09/23(土) 15:29:38.76ID:vuIl3Vgh
継承するよりコンポジションしてアクセスを転送する方がいいっていうのは
もうオブジェクト指向では定説
0659デフォルトの名無しさん
垢版 |
2017/09/23(土) 15:37:14.57ID:vuIl3Vgh
ミュータブルなコレクションに厳密な静的型チェックを適用としようとするのはいろいろ限界がある
Javaでは厳密な静的型チェックを放棄して使いやすさを優先してる
0660デフォルトの名無しさん
垢版 |
2017/09/23(土) 15:40:52.48ID:JwqPmi7Z
今更だけど、StringをStringリスト(配列)にするってクッソ馬鹿っぽいな
Stringをnewするのも重いし、確保したメモリをGCで回収するのも重くなる

「StringをCharにしてからStringにするという手間」とか言うならChar配列で扱えというね
String配列扱うくらいに性能を考えないなら、当初の通りに#toList #map使っててもおkだろ
0661デフォルトの名無しさん
垢版 |
2017/09/23(土) 16:00:34.34ID:BNc4tUhk
>>654
>mutableListはmutableListしか種類ない
意味がわからない
大枠でList, Set, MapなどがあってLinkedHashMapとSortedMapは順序制御が違うし
ArrayListとLinkedListは追加削除のパターンによって計算量オーダーが異なる

>setter, getterからアクセスしろとか言っていたくせに
構文が理由ではない
>フィールドをpublicにしているのと変わりない
構文が変わりないだけ
0662デフォルトの名無しさん
垢版 |
2017/09/23(土) 16:22:03.12ID:vuIl3Vgh
>>660
Stringがイミュータブルなら、
Stringの一部分を取り出して新しいStringを作るのはとても軽い処理でできる
その新しStringを作る仕組みで配列を作れば、それも軽い
0663デフォルトの名無しさん
垢版 |
2017/09/23(土) 16:43:59.09ID:JwqPmi7Z
COW信者乙

さておき、入れ物のStringインスタンスをnewするのはやめたいよな
中身をコピーするかどうか以前にJVM上のインスタンスの確保が重たいんだよ
そして、GCで回収して回る対象個数が増えて重たくなるのは中身のコピー有無は関係ないんだよ
0664デフォルトの名無しさん
垢版 |
2017/09/23(土) 17:42:00.77ID:8bsZ0VcP
かといって日頃パフォーマンスに影響するような膨大な処理をさせてないので気にならない
0666デフォルトの名無しさん
垢版 |
2017/09/23(土) 21:43:26.21ID:Kp7vI9MI
気に入らないところが、JavaやScalaを使い込んだ人視点で、このスレレベルからみるとむしろズレてるね
■ このスレッドは過去ログ倉庫に格納されています

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