Kotlin 3 at TECH
[2ch|▼Menu]
[前50を表示]
600:デフォルトの名無しさん
18/06/20 07:45:34.90 uIiaZAdf.net
鳴いてからのリーチ並みやね

601:デフォルトの名無しさん
18/06/20 08:25:25.76 0AAuI80I.net
スッキリ厨がすすめてくるから絶対に読まない
宗教臭くて怖いもん

602:デフォルトの名無しさん
18/06/20 12:09:27.22 6rBiJmX/.net
逝ッテヨシ

603:デフォルトの名無しさん
18/06/20 15:28:36.34 jWp/iCzK.net
掌田の本って章ごとにプログラム別れてない上に書いて消してが多くて読みづらいんだよな

604:デフォルトの名無しさん
18/06/20 20:24:36.24 ny9I+lnV.net
言語設計者本人による設計意図を語る本とかは買うことあるけど
仕様の解説本とか入門本とかはネット上の情報で十分だろって思う

605:デフォルトの名無しさん
18/06/21 07:22:32.15 Ut2Le8ca.net
それより帰ってプレステやろうぜ

606:デフォルトの名無しさん
18/06/21 08:43:02.51 WcKzmmhQ.net
セガなんてだっせーよな

607:デフォルトの名無しさん
18/06/21 11:54:55.23 XRjSCNYX.net
セガサターン

608:デフォルトの名無しさん
18/06/21 12:08:38.91 L/t8iXOT.net
瀬川悪魔?(難聴)

609:デフォルトの名無しさん
18/06/21 12:10:22.95 KCa7w5ul.net
せがた三四郎

610:デフォルトの名無しさん
18/06/21 12:59:40.28 Wu9QfWES.net
上で話題になってたOpenJDKは8月の頭にカンファレンスやるらしいから、そこで何かしら情報あるかもね。
中の人は前々からLTSについて公言してるから、さすがに何もやらないってことはないと思うけど。

611:デフォルトの名無しさん
18/06/21 12:59:40.90 MEOBL//m.net
なつかしい

612:デフォルトの名無しさん
18/06/21 18:25:23.06 rHuCUh+p.net
このスレ30代以上しかいないだろ

613:デフォルトの名無しさん
18/06/21 18:31:33.27 AR+opYPW.net
>>602
うんにゃ

614:デフォルトの名無しさん
18/06/21 20:14:09.53 YE7/gwSF.net
このスレにはナウいヤングしかいないに決まってるぢゃないか

615:デフォルトの名無しさん
18/06/21 20:16:04.70 pkPeGiXN.net
デラベッピンとか積丹と聞いて元ネタが判る人しか
いませんよね〜

616:デフォルトの名無しさん
18/06/21 20:49:53.75 rHuCUh+p.net
>>605
俺おっさんだと思ってたけどそれどちらも分からないから若いわ

617:デフォルトの名無しさん
18/06/21 20:53:08.78 pTjgD9kk.net
>>606
Deluxe Beppin

618:デフォルトの名無しさん
18/06/21 21:33:56.56 lqU0FUt9.net
コンプティークの袋とじが青春時代だった

619:デフォルトの名無しさん
18/06/21 23:43:48.35 XwnPbItt.net
なんで車高が低い車のことを積丹というのか

620:デフォルトの名無しさん
18/06/22 01:54:32.78 AmdeLsRG.net
車高が低い(短い)からでは?

621:デフォルトの名無しさん
18/06/22 05:00:39.65 3OcQXUa8.net
でらって名古屋弁じゃなくてデラックスなのか?

622:デフォルトの名無しさん
18/06/22 07:19:40.97 l0b3ZjCn.net
積丹ってそんな漢字あてるんだ
知らんかったわ

623:デフォルトの名無しさん
18/06/22 07:30:18.81 A2+z0Ph1.net
21世紀の人間なら知らなくても困らないから気にするな

624:デフォルトの名無しさん
18/06/22 08:31:42.21 lrbrByg3.net
しゃこたん!

625:デフォルトの名無しさん
18/06/22 08:35:21.49 uv8weeDu.net
雲丹食った事無いの?

626:デフォルトの名無しさん
18/06/22 09:31:00.55 TLETRHno.net
私は21世紀から来た未来人
ナウいヤングのみなさんこんにちは

627:デフォルトの名無しさん
18/06/22 09:31:53.75 TLETRHno.net
さて、今は昭和何年かな

628:デフォルトの名無しさん
18/06/22 09:41:52.15 cct9k0Rk.net
おっさんぱぶ

629:デフォルトの名無しさん
18/06/22 20:03:42.85 /0JmIthO.net
昭和93年

630:デフォルトの名無しさん
18/06/22 20:18:28.51 pFncXrHB.net
【王様きどり、財界″】 マイトLーヤ『人々はもう特定の主義を認めない、政治的教化は通用しない』
スレリンク(liveplus板)

共産でも、資本でもない、分ち合い経済が、登場します!

631:デフォルトの名無しさん
18/06/22 20:41:23.86 m4dP8IKP.net
URLリンク(oldcar-purchase.com)

632:デフォルトの名無しさん
18/06/23 13:30:05.04 63C7HKhZ.net
main の関数って一番下に書かなくてもいいの?
mainより下に中で使う他の関数書いてもいいんだ?

633:デフォルトの名無しさん
18/06/23 15:53:22.37 EFPp8pY4.net
>>622
Javaのクラスの中のメソッドと同じで順序は問わない。
まあでも新しい言語ってだいたいそうじゃないか?
変数の場合は初期化される順序の問題で先に書かなきゃいけない場合はあると思うが。これについては Kotlin も同じ。
例えばこうなっている場合に main() と p() は順序を逆にできるが s と s2 は逆にできない。
val s = "abc"
val s2 = s + "def"
fun main(args: Array<String>) = p()
fun p() = println(s2)
できるような言語も作れるだろうがそうすると人間が混乱する可能性が高まってバグの温床になりかねないからわざとできないようにしてあるんだろうと思う。

634:デフォルトの名無しさん
18/06/23 16:49:28.35 1ogXGchx.net
一般論として、初心者の質問に対して聞かれたこととあまり関係のない情報を答えすぎると混乱させるだけだからやめた方が良いよ

635:デフォルトの名無しさん
18/06/24 17:01:23.99 0eT+Bnxh.net
>>623
コンパイル言語だから上から実行されるわけではないんですね 
pythonだと怒られそう
変数の代入に関しては上からということか

636:デフォルトの名無しさん
18/06/24 17:12:23.44 p+pduEru.net
nullを許容しない利点はなんですか?

637:デフォルトの名無しさん
18/06/24 17:44:56.37 zUb4/N1b.net
許容する場合としない場合を区別出来ることかな

638:デフォルトの名無しさん
18/06/24 18:46:55.05 p+pduEru.net
犬の利点を教えてください
猫と犬を区別できるからかな
答えになってません
やり直し

639:デフォルトの名無しさん
18/06/24 18:49:35.07 QFRKHUIu.net
質問する側がダメだしねえw

640:デフォルトの名無しさん
18/06/24 18:58:35.31 I6qT+7Vz.net
バカを許容しないと
バカによる被害を避ける事ができる

641:デフォルトの名無しさん
18/06/24 19:10:39.22 zUb4/N1b.net
>>628
いや、答えになってるよ
頑張って

642:デフォルトの名無しさん
18/06/24 19:57:19.87 p+pduEru.net
じゃあちょっと質問の仕方を変えますね
なぜnull不許容が必要なのか教えてください
これならわかるかな?

643:デフォルトの名無しさん
18/06/24 20:21:05.34 YRVrDSwQ.net
ifでのnull判定がめんどくさい

644:デフォルトの名無しさん
18/06/24 20:22:39.29 RQ8Q2AIa.net
それよりも帰ってプレステやろうぜ

645:デフォルトの名無しさん
18/06/24 20:40:44.92 p+pduEru.net
そもそも、nullを代入しなければいいのでは?
もしくは初期化しておけばいいと思います
違いますか?

646:デフォルトの名無しさん
18/06/24 20:51:32.85 Lm+QSQ9f.net
COBOLとかFORTRANはそういうコンセプトだねぇ
kotlin止めるの推奨

647:デフォルトの名無しさん
18/06/24 20:59:37.06 RPmVTiLU.net
>>635
1人で全て開発するならそれでいいと思うよ。

648:デフォルトの名無しさん
18/06/24 21:03:58.17 p+pduEru.net
つまり、null不許容型は人的ミスのためであって他意はないと?

649:デフォルトの名無しさん
18/06/24 21:05:43.17 VUEtZOMW.net
>>635
初めたばっかで良く分かって無いが、null使わないなら許容する意味が無くね-か
寧ろnullを使う意味が分からない

650:デフォルトの名無しさん
18/06/24 21:22:24.66 YRVrDSwQ.net
例えばSwiftは言語仕様でnullを抹殺しているが、わざわざOptionalというnullでないものでnullを表現してる。nullがない世界など何処にもないのだ。

651:デフォルトの名無しさん
18/06/24 21:25:55.36 p+pduEru.net
例えばファイルが読み込めなかった場合、どうなると思いますか?
答えられますか?
答えられるようになったら質問してください。
今はそういうレベルの話ではないです。

652:デフォルトの名無しさん
18/06/24 21:38:37.19 /V8oJSwl.net
>>631
> なぜnull不許容が必要なのか教えてください
あなたの言う意味では不要。null許容にすることによってプログラミングが不可能になることはない。
nullによって発生する凡ミスが減るというメリットを必要とする人がいる。それだけ。
>>641
> 今はそういうレベルの話ではないです。
わからないで聞いているというより、わかってて煽ってるわけだ。
> 例えばファイルが読み込めなかった場合、どうなると思いますか?
ここでnullを許容する必要があるのではないかと言いたいんだと思うけど、
Kotlinがそうしているかどうはかは別にして、「ファイルが読み込めなかった」という
nullでない値を返すという考え方もある。
null許容のJavaだと例外を投げるところかな。

653:デフォルトの名無しさん
18/06/24 21:40:24.82 p+pduEru.net
>>640
おっしゃる通りで、結局不正なデータのチェックは必要なわけで、null不許容だから安心して使えるわけでもなく、寧ろ何気にうまく動いている状態が一番怖いです

654:デフォルトの名無しさん
18/06/24 21:52:05.84 p+pduEru.net
null不許容のクラスを作るとして
そこではあらゆるケースに対処を強いられるわけで、チェック項目は膨大になります
しかしそれを利用する側は単純にファイルが読めるか否かだけ知れればいいとします。
null不許容を取り入れるということは、開発コストが上がることを示唆しているのではないかと
どうですか?

655:デフォルトの名無しさん
18/06/24 21:54:49.09 YRVrDSwQ.net
Optionalは中身取り出すのにアンラップが要る。Kotlinはnullにならないようにコンパイラがチェックしてるだけ。よってアンラップ不要。副作用としてnullを許容してないのに場合によってはnullが入ってしまうこともある。。

656:デフォルトの名無しさん
18/06/24 22:02:12.48 p+pduEru.net
>>645
それは実行時の動的なnullですよね。
私が質問しているのは、null不許容型(言い換えれば静的なnullに関して)の必要性についてです。

657:デフォルトの名無しさん
18/06/24 22:02:30.58 RQ8Q2AIa.net
>>644
>>642が答え書いてるじゃん

658:デフォルトの名無しさん
18/06/24 22:07:56.87 GxIVu2Pg.net
ていうか日本語の文章おかしいし、確実に酔っ払いかただのキチガイじゃん

659:デフォルトの名無しさん
18/06/24 22:10:34.25 GxIVu2Pg.net
おおかた大学のレポートなり試験なりでその質問をされて回答を探しにきたんだろ
ネットで煽りっぽく聞けばムキになった人が答えてくれるからね、君は賢いね、偉い偉い

660:デフォルトの名無しさん
18/06/24 22:30:46.16 F0/bv6/d.net
>>628
たとえが下手すぎて

661:デフォルトの名無しさん
18/06/24 22:36:12.55 RQ8Q2AIa.net
だってこの子見るからに頭悪そうじゃない

662:デフォルトの名無しさん
18/06/24 22:37:28.39 1JRb/tn1.net
高圧的に質問すれば、逆に皆反応してくれる良い例だね

663:デフォルトの名無しさん
18/06/24 23:18:47.64 eSenA4KT.net
>>625
コンパイルする言語なのかインタープリタなのかという問題ではなくて、そういう仕様の言語というだけのこと。
というのはコンパイルしようがしまいが同じような言語は作れるから。

664:デフォルトの名無しさん
18/06/24 23:20:17.58 eSenA4KT.net
>>626
それによるバグをコンパイル時にエラーを出すことによって防げる。

665:デフォルトの名無しさん
18/06/24 23:25:25.08 eSenA4KT.net
今ちょっと前にAmazon見たらこれのKindole版の方だけ1361円だった。55%offかな。だいたい半額ぐらい。
短期間のセール価格なのかも知れない。
Androidアプリ開発のためのKotlin実践プログラミング 現場で求められる設計・実装のノウハウ
URLリンク(amzn.asia)
紙の本はもう持ってるのにうっかり押しちゃうところだったw

666:デフォルトの名無しさん
18/06/24 23:40:28.01 454A8npo.net
遠回しな宣伝だなぁ

667:デフォルトの名無しさん
18/06/25 00:03:59.42 MQFTLmTQ.net
>>656
宣伝にはなっちゃうが他に知らせる方法ないよな。

668:デフォルトの名無しさん
18/06/25 01:08:25.26 eZlTEzf8.net
>>649
だろうな
煽り質問は無視しとけば良い
世の中nullっとしてないと入るものも入らないんだよ

669:デフォルトの名無しさん
18/06/25 02:22:50.92 qxY2M36r.net
>>655
見る価値がないわぁ

670:デフォルトの名無しさん
18/06/25 08:15:38.14 +UpY7hie.net
null安全に文句つけるひとほどnull安全を大袈裟に捉えてる現象

671:デフォルトの名無しさん
18/06/25 08:19:39.17 1p6QEPdQ.net
本人あっさり逃げたな
マジで>>649が図星だったのかw

672:デフォルトの名無しさん
18/06/25 08:59:14.92 //DXoKuS.net
とするともう大学で教えてる所があるということになるな

673:デフォルトの名無しさん
18/06/25 09:02:09.61 1p6QEPdQ.net
null安全な言語はもうずっと前からあるから、それに触れる授業くらいはいくらでもあるでしょ

674:デフォルトの名無しさん
18/06/25 09:08:55.77 //DXoKuS.net
>>658
【審議中】
.   ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u’. `u-u’

675:デフォルトの名無しさん
18/06/25 09:10:40.50 l5OlESCl.net
kotlin流行らんなあ

676:デフォルトの名無しさん
18/06/25 12:17:54.99 VJwqAc5V.net
BASICはnul安全

677:デフォルトの名無しさん
18/06/26 06:08:18.39 2T7FQdCl.net
KotlinのターゲットJVMは、Java8の次はOracleJDK 11になるんだろうか、OpenJDK 11になるんだろうか。

678:デフォルトの名無しさん
18/06/26 08:30:26.76 T66Du/32.net
Jetbrainオリジナルのkdkになるよ

679:デフォルトの名無しさん
18/06/26 09:17:28.24 j47hmKh+.net
そんなん作ってくれるならそれはそれで助かる

680:デフォルトの名無しさん
18/06/26 09:36:33.84 DwsAXqqT.net
絶対に必要なのはJVMでJDKは要らなくする方向になるんだろな

681:デフォルトの名無しさん
18/06/26 15:19:07.75 Pch/7s9D.net
nativeはやく整備しよ?
jetbrainとgoogle様ならわけないっしょ?

682:デフォルトの名無しさん
18/06/26 15:46:55.60 JaGjn0N8.net
nativeっておもちゃとしては楽しいだろうけど、現実的にそこまでニーズあるかね

683:デフォルトの名無しさん
18/06/26 18:39:53.31 94ok3+r+.net
明日JBの中の人が来日してkotlinイベントあるね
何か面白い話聞けるかな

684:デフォルトの名無しさん
18/06/26 19:48:16.67 EJ9QuCpH.net
>>672
まずはおもちゃとして使って楽しんで、それから何かに使えないか考えれば良いのではないかな。
その内なにか丁度良い用途が見つかると思うよ。

685:デフォルトの名無しさん
18/06/26 21:43:33.91 94ok3+r+.net
趣味で何か作るなら是非使いたいね。
ビジネスプロダクトを作るならまたちょっと話が変わるけど。

686:デフォルトの名無しさん
18/06/27 07:38:02.


687:49 ID:6utZ2/C2.net



688:デフォルトの名無しさん
18/06/27 08:32:56.41 mCGbxVOO.net
Kotlinを選ぶ時点で、既に自分の得意な特定の言語に固執する低レベルな段階を卒業してる人が多いだろうから
無理にKotlin使うよりプラットフォームに合わせた適切な言語を使うべきと考える人が多数派だろうね

689:デフォルトの名無しさん
18/06/27 08:41:17.54 EhxoKQAq.net
うちもいくつかアプリ作ってるけど、結局それぞれのネイティブで並行開発が1番間違いないって感じになってるな。
Xamarin使ってるのもあるけど、やっぱり色々辛い。RNはもっとアレだったからプロダクトに使う前にやめた。

690:デフォルトの名無しさん
18/06/27 08:44:02.48 eZ/QptdS.net
そうそう
クロスPFなんてもうunityくらいしか使われていない

691:デフォルトの名無しさん
18/06/27 09:01:55.92 tEiv7Ngd.net
Xamarin程の糞はない

692:デフォルトの名無しさん
18/06/27 10:28:55.92 WNG+0R1n.net
>>679
Unityって触ったことないけど、ゲーム以外にも使えんの?

693:デフォルトの名無しさん
18/06/27 10:31:24.77 Ei1nEpEL.net
使えない

694:デフォルトの名無しさん
18/06/27 12:18:58.79 +kJys0PI.net
単純にプラットフォームのバージョンアップに加えて、Xamarinの更新や仕様変更にもついていかなくちゃいけないのが割と大きいんだよね。
レイヤーが1枚増えるぶんこちらの意思とは無関係にメンテしなくちゃいけないものが増える。

695:デフォルトの名無しさん
18/06/27 18:40:46.48 joyJ67qD.net
ネイティブでクロスコンパイルだとgoがいい感じなんだがいかんせん言語仕様がアレじゃん?
rustもつらみが深いし。
kotlinがそこ狙ってくれないかなー

696:デフォルトの名無しさん
18/06/27 19:00:28.69 FvMz1kHT.net
Googleがgo諦めてKotlin推しになったんだと思ってるんだが

697:デフォルトの名無しさん
18/06/27 19:40:54.39 qKnsPtkx.net
Google的にはTypeScriptとPWAでしょ

698:デフォルトの名無しさん
18/06/27 20:31:33.36 9CxCJ+s3.net
GoはGoogleAppEngineとセットで推されてる感じ
Dartはモバイルアプリに使えるようになったけど、PWAにも対応されるのかな

699:デフォルトの名無しさん
18/06/27 21:31:14.11 /7xWx8r1.net
Google A 「KotlinはAndroid開発の第一級言語」
Google B 「Dartならクロスプラットフォーム開発出来るよ」
Google C 「社内ではTypeScriptが標準開発言語ですけどね」
Google D 「Goはさらに進化する」

700:デフォルトの名無しさん
18/06/27 21:47:53.30 UhwNkHWJ.net
Googleも一枚岩ではないからな

701:デフォルトの名無しさん
18/06/27 21:54:44.06 058nb6Zd.net
そういうカオスなのがGoogleっぽくて嫌いじゃない
Googleはインド系
Appleは中国系

702:デフォルトの名無しさん
18/06/27 22:06:52.35 M3lpNFO8.net
Google的にはWebAssemblyはどの言語なんだろ
Kotlin/Nativeを推してくれたりしないものか

703:デフォルトの名無しさん
18/06/27 22:36:51.97 09Lu5AaC.net
GoogleはSEO最強だからどんなものでもそれなりに凄いもののように見えるけど、
実際にはGoogle自身も全く本気でやってないお遊びレベルのゴミが多いでしょ
Googleって社内的には非常に一貫性の高い独自のプラットフォームがあって、世間のOSSベースな開発とはかけ離れた世界になってるらしいし

704:デフォルトの名無しさん
18/06/28 05:21:24.48 lL281Rpl.net
ソースは?

705:デフォルトの名無しさん
18/06/28 08:16:52.30 1UW06GNd.net
googleのソースリポジトリへのコミット要件が割と厳し目なのは有名かな。
その割にgithubにあげてるのはそもそもまともに動かないものもたまにある。

706:デフォルトの名無しさん
18/06/28 11:23:25.80 m6ikkjV1.net
>>693
オリバーかイカリ使ってる

707:デフォルトの名無しさん
18/06/30 20:53:17.24 eWG25u0M.net
この前のHadi Haririのイベント行った奴いないの?

708:デフォルトの名無しさん
18/07/01 08:01:17.25 /DvFOeR7.net
すみません、どちらに質問させて頂けるのか分からなくてこちらで教えていただければと考えてます。よろしくお願いします。

709:696
18/07/01 08:15:08.30 /DvFOeR7.net
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}を実行しているという理解でいいのでしょうか?

710:デフォルトの名無しさん
18/07/01 08:18:15.23 nOlX7v2j.net
>>682
Unityの「だってお前らこれではゲームしか作らんだろ」という割り切りっぷりは清々しい
ゲーム的文法で作る以外のルートがねえw

711:デフォルトの名無しさん
18/07/01 10:29:25.00 7m3QggRW.net
>>698
1行目はLという名前の関数にxを渡してるだけ
 fun func(x:int, y:(Int)->Int) {
   return L(x)
 }
の省略表記
ただ、引数のyが無視されているので
L(x) じゃなくて y(x) の間違いなんじゃねって気がする
2行目は代入云々はその理解で合ってるけど
「実行している」のではなく「定義して渡している」
実際そのコードではyが呼ばれてないのでその掛け算は実行されない

712:デフォルトの名無しさん
18/07/01 16:20:40.37 nicbhK38.net
なんで、宣言のとき型と変数名逆にしたんだろうなあ、苛つくわあ

713:デフォルトの名無しさん
18/07/01 16:23:38.80 nOlX7v2j.net
>>701
省略したいときウルトラ面倒になるのでやりたくなかったのだろう

714:デフォルトの名無しさん
18/07/01 16:58:23.83 nicbhK38.net
val 人間:文字列=山田
気持ち悪いわあ

715:デフォルトの名無しさん
18/07/01 18:15:00.04 kOaBFF1V.net
>>701
型が省略されてるものとされないものが混在したら可読性ウンコになるだろ

716:デフォルトの名無しさん
18/07/01 19:41:23.70 zdyprq44.net
以前はPASCAL, ML, Haskell、最近なら Scala, Go もこういう形で、
「型 変数」っていう順序のCスタイルの方が本来異色なんだけど。

717:デフォルトの名無しさん
18/07/01 20:18:17.04 dWb7F20p.net
>>704
val a=0
int b=1
みたいな感じじゃだめだったのか気になる

718:デフォルトの名無しさん
18/07/01 20:49:55.44 8aTW58+O.net
val name : String = " 名前"
" String "に代入してる感覚があるから、わかりにくのは事実だわなw

719:デフォルトの名無しさん
18/07/01 20:53:31.14 dWb7F20p.net
>>707
これよこれ
Aをhogeという型で代入
hogeという型のAに代入
好みかな…

720:デフォルトの名無しさん
18/07/01 21:01:29.33 kOaBFF1V.net
>>706
それだと
val int a = 0
val b = 1
になるやん

721:デフォルトの名無しさん
18/07/01 21:31:28.10 sOb0a/fB.net
文芸的プログラミングというやつで、
val name: String
はname of Stringと見えるから英語の順序的にはこのほうが自然

722:デフォルトの名無しさん
18/07/01 21:38:16.02 nOlX7v2j.net
てゆーか>>703の例の時点でさくっと英語理屈を出してあげたほうが混乱がなかったと思う
じゃあなんでC族がそうなってないかって?
Cだからそんな面倒なことしねーんだよお前側が機械に合わせろw

723:デフォルトの名無しさん
18/07/01 22:01:00.11 q7RVjG2e.net
日本語話者の一般的な認知様式は
鳥の模型>模型の鳥
名前を表す文字列>文字列で表された名前
だし、日本語でも 変数名:型 の方が言語的には自然では

724:デフォルトの名無しさん
18/07/01 22:20:03.34 InQHnS3f.net
数字の n は 42
文字列の s は "42"

725:デフォルトの名無しさん
18/07/01 22:26:56.25 nicbhK38.net
言葉的にはそうかもしれないが
抽象度の順じゃないつうのがねー
これがモヤっとする原因
哺乳類>人間>山田

726:デフォルトの名無しさん
18/07/01 22:31:27.77 R8XGd50K.net
>>714
うるせーそれが仕様だ
慣れろバカ

727:デフォルトの名無しさん
18/07/01 22:50:43.53 q7RVjG2e.net
>>713
それも大抵の日本人は
nは数字の42
sは文字列の"42"
と表現すると思うよ

728:デフォルトの名無しさん
18/07/01 22:55:24.40 +8z4/crF.net
単純に慣れだと思うんだけどなぁ
コード読むときに
>>713
>>715
みたいな考えいちいち経由しないでしょ

729:デフォルトの名無しさん
18/07/01 23:01:37.60 8aTW58+O.net
kotlinの基本に慣れる為に
val name : String = " 名前"
"定数"の"name"には"String型"の"値"を入れる
と言う解釈がすんなり行けるかな

730:デフォルトの名無しさん
18/07/01 23:08:56.02 raAwvdUY.net
val name: String = "..."
"name" is a string: "John Smith"
「名前」は文字列、"山田花子"
打ってる時はだいたいこういう感じの思考の流れがある

731:デフォルトの名無しさん
18/07/01 23:19:27.43 CPfYnrTw.net
>>718
define a variable "name" as a string and assign a value "名前" to it って読むんだよそれ

732:デフォルトの名無しさん
18/07/01 23:20:47.61 InQHnS3f.net
valなのにvariable wwwww

733:デフォルトの名無しさん
18/07/01 23:27:05.41 yaDvqYhr.net
昔々PascalというかDelphiをよく使っていたので変数名、形の順でも違和感なし。
Oracle の PL/SQL も確かそうだったな。
Cも昔からよく使ってるけどね。Javaは趣味で使う程度かな。

734:デフォルトの名無しさん
18/07/01 23:30:37.32 yaDvqYhr.net
そういやKotlinは val a, b, c : Int みたいに書いてまとめて宣言できないんだっけ?できた?

735:デフォルトの名無しさん
18/07/02 00:28:48.57 QmQNg+H0.net
>>709
javaとかこんなんじゃなかったっけ

736:デフォルトの名無しさん
18/07/02 00:29:30.51 QmQNg+H0.net
>>709
>>706のことね

737:デフォルトの名無しさん
18/07/02 02:31:32.49 oF5BHAcS.net
変数名とコロンの間にスペース入れるのは規約違反?

738:デフォルトの名無しさん
18/07/02 04:08:17.17 M/CoMLX8.net
>>726
エラー出ないから言語としては良いのでは?
関係ないが>>723で書いたやつは試したらダメだった。

739:デフォルトの名無しさん
18/07/02 10:54:34.73 sDkOSnE9.net
>>726
IntelliJのCode Style設定ではどちらも選べるようになってるから、どちらでもいいんでない

740:デフォルトの名無しさん
18/07/02 12:07:35.37 eli6Ofbc.net
>>727,728
そーなのか
なんとなく型はスペース無しで継承はスペース有りかと
ありがとりん

741:デフォルトの名無しさん
18/07/02 15:54:18.89 fF3oZnn5.net
そうそう型と継承が同じ記法だからごちゃごちゃするよな
どうせならすべて動的型付けにすればよかったのに

742:デフォルトの名無しさん
18/07/02 16:24:41.26 6MU/ELtX.net
動的型付けだと、存在意義全否定だろ。
Groovyでも使っとけ。

743:デフォルトの名無しさん
18/07/02 20:41:56.60 nCi8FeLN.net
型推論と動的型付けを混同すんなよ

744:デフォルトの名無しさん
18/07/02 21:15:16.60 BzTTxziN.net
>>700
お礼が遅れてすみません。
仰る通り、記載ミスで、y(x)です。
ご解説ありがとうございます。
すっきりしました。ありがとうございます。

745:デフォルトの名無しさん
18/07/02 21:24:23.77 EvLqbtyu.net
>>733
うむ。精進なされよ。

746:デフォルトの名無しさん
18/07/02 23:00:47.89 //b/At4I.net
慣れたら型が後の方が可読性高く感じる
それと構文解析しやすくなるのもあるんじゃね
Kotlinでの
 (T1,T2)->R
はJavaでは
 BiFunction<T1,T2,R>
型が先だと関数型(function type)が他の構文と衝突しないよう識別子やジェネリクス型を置くことになる

747:デフォルトの名無しさん
18/07/03 00:00:46.54 GdB7bYPq.net
(TT^TT)

748:デフォルトの名無しさん
18/07/03 00:39:55.52 TIu9/k2l.net
関数の返値の変数の型も指定できるから、そっちのほうはわかりやすいんじゃないかな
fun hoge(): String = "ぬるぽ"
関数型プログラミングだと、そういう形式のほうがわかりやすいんじゃないかと思う
val hoge: () -> String = fun(): String = "ぬるぽ"

749:デフォルトの名無しさん
18/07/03 09:23:57.08 5ohzf/bH.net
>>737
ガッ

750:デフォルトの名無しさん
18/07/03 10:05:34.13 2Hrfam1D.net
慣れの問題じゃなあかなあ

751:デフォルトの名無しさん
18/07/03 10:06:19.13 2Hrfam1D.net
うう。スマホのフリック入力で失敗した。

752:デフォルトの名無しさん
18/07/03 10:07:52.88 ng0Ex9q0.net
>>739
人間歳をとると新しいものに慣れるのに時間がかかるようになる
そしてこのスレはおっさんのすくつだ

753:デフォルトの名無しさん
18/07/03 10:19:34.86 lMsOY+nb.net
このスレの人たち、今だにガラケー使ってそうだな
いつまで慣れの問題でギャーギャー言ってんだよ

754:デフォルトの名無しさん
18/07/03 10:40:19.23 pQbF/VH/.net
>>740
「い」の入力失敗率はあじょう。
人間工学的におかしあ。
あちばん遠あからな。

755:デフォルトの名無しさん
18/07/03 11:32:14.53 jh9a6Llj.net
>>742
幸か不幸かどこぞの板と違って末尾で判断できない

756:デフォルトの名無しさん
18/07/03 15:12:48.33 k8WNCQ/C.net
kotlinのコロン( : )ってどんな働き・役割なのですか?

757:デフォルトの名無しさん
18/07/03 15:56:30.11 k8WNCQ/C.net
もう一つ質問させてください
1. class chiba{ }
2. class chiba(){ ]
3. class chiba(city:String="--"){ }
1はコンストラクタは持たない
2は自動でパラメータのないコンストラクタが生成される
3は( )内でパラメータを初期化し{ }がコンストラクタになる
という理解でいいのでしょうか?

758:デフォルトの名無しさん
18/07/03 16:38:20.61 h4wqJ0lA.net
>>745
単独では何の働きも役割もない
ただの区切り文字

759:デフォルトの名無しさん
18/07/03 20:19:53.43 rBmEiF9u.net
>>746
以下4行は同一、下に行くほど省略表記なだけ
コンストラクタは自動的に作られる
class chiba constructor() { }
class chiba() { }
class chiba { }
class chiba
コンストラクタ(プライマリコンストラクタ)の中身は
初期化ブロック( init{...} )とインスタンス変数の初期化
具体的にコードで
URLリンク(ideone.com)
リファレンス
URLリンク(kotlinlang.org)

760:デフォルトの名無しさん
18/07/03 20:54:14.27 ODNzvHJa.net
ObservableFieldの説明を見ていたら、
URLリンク(developer.android.com)
public final ObservableField<String> first = new ObservableField<String>();
public final ObservableField<String> last = new ObservableField<String>();
public final ObservableField<String> display = new ObservableField<String>(first, last) {
    @Override
    public String get() {
        return context.getResources().getString(R.string.name, first.get, last.get());
    }
};
既存のObservableFieldを組み合わせて新しいObservableFieldを作るようなコードが載っているので、
そのままコピペして試してみたんですが、コンパイルが通らないんですがどうしたらいいですか

761:デフォルトの名無しさん
18/07/03 21:10:49.57 egr/fzRr.net
>>749
コンパイルエラーのエラーメッセージを読む

762:デフォルトの名無しさん
18/07/03 21:13:11.08 b3yF7W7d.net
それJavaじゃん
Kotlinで書く

763:デフォルトの名無しさん
18/07/03 21:34:21.57 ODNzvHJa.net
Kotlinに変換しても同じだった
エラーメッセージは以下だが、何を治したらいいのか
Cannot resolve constructor 'ObservableField(...)'

764:デフォルトの名無しさん
18/07/04 04:50:43.63 deFmQ17L.net
スレ違いの

765:デフォルトの名無しさん
18/07/04 04:54:54.94 /r54tfMO.net
コトリヌス

766:デフォルトの名無しさん
18/07/04 07:37:22.00 QS1wdrQw.net
>>752
だからKotlinで書けよ
自動変換は完璧じゃない

767:デフォルトの名無しさん
18/07/04 07:37:52.39 K6PpspCw.net
基礎からやっていくか、状況をちゃんと説明出来るようになるか

768:デフォルトの名無しさん
18/07/04 07:42:41.16 d8xWcdxC.net
初心者でせっかくだらjavaよりも新しいkotlinでやろうと勉強中なんだけど、結局javaも知らんといかんのね…

769:デフォルトの名無しさん
18/07/04 07:54:41.64 qSU3AFLq.net
「こんぱいるとおりません」は実際なんも説明してねーからな
で、「ほんとうに」全部自分でゼロから作るならJavaの知識は不要なのだけど
実際はJavaの内部ライブラリやJava製の外部ライブラリを利用するorさせられることが多いので
Javaは少なくとも読めて呼び出し法くらいは知っておかないと現状余裕で詰まる

770:デフォルトの名無しさん
18/07/04 08:34:41.84 dJOGt5Qc.net
普通に、コンストラクタの引数がちがうか、importしてないか、importするための設定をbuild.gradleに書いてないかだろ

771:デフォルトの名無しさん
18/07/04 08:39:44.33 hww1W9rh.net
ああそのレベルならimportしてないが有力だな、確かにw

772:デフォルトの名無しさん
18/07/04 08:42:59.27 bgzrJhKa.net
ビルド通ったやついるん?

773:デフォルトの名無しさん
18/07/04 10:08:54.78 lcEaonpe.net
importしてないならその前でコケるだろjk
sdkのバージョン違いじゃないの?

774:デフォルトの名無しさん
18/07/04 10:40:04.79 dJOGt5Qc.net
build.gradleのandroid {} のなかに dataBinding { enable = true } 書いて、ObservableField のとこで Alt + Enter すれば、必要なimport が追加されたよ

775:デフォルトの名無しさん
18/07/04 11:34:18.64 Fv6I2084.net
return context.getResources().getString(R.string.name, first.get, last.get();
ここの行のfirst.getもfirst.get()のはずだし、公式のサンプルコードがおかしいんじゃねえの

776:デフォルトの名無しさん
18/07/04 11:39:55.59 PJj9ZCzu.net
>>748
ありがとうございました!

777:デフォルトの名無しさん
18/07/04 14:18:24.41 6R9abQ63.net
kotlinはネット投稿越しの説明デバッグが面倒くさい…

778:デフォルトの名無しさん
18/07/04 15:27:56.70 hVA06Lo9.net
>>723に書いたやつはできないがこういうのはできるのな。
val (a, b, c, d, e) = listOf(1, 2, 3, 4, 5)
ただし5つまで。理由は component1() 〜 component5() を使うため。

779:デフォルトの名無しさん
18/07/04 16:47:52.07 n4h9hTEh.net
はい
URLリンク(goo.gl)

780:デフォルトの名無しさん
18/07/04 19:03:02.55 Uqt21yY2.net
>>768
グロ

781:デフォルトの名無しさん
18/07/04 19:20:22.52 dJOGt5Qc.net
>>766
kotlin はテキストのコピペで説明できるから簡単じゃね?
VS使ってるとスクリーンショット使わないと説明できないこと多くて大変

782:デフォルトの名無しさん
18/07/04 19:41:26.22 yHhNx3G5.net
>>770
>VS使ってるとスクリーンショット使わないと説明できないこと多くて大変
たとえば?

783:デフォルトの名無しさん
18/07/04 21:42:39.79 KFDu9ptB.net
それもまたスクリーンショットを使わないと説明できないのです。

784:デフォルトの名無しさん
18/07/04 21:47:17.49 gFgZc5FG.net
9MT

785:デフォルトの名無しさん
18/07/05 06:52:07.84 3UdVdS3q.net
つまりVSは抽象概念だった?

786:デフォルトの名無しさん
18/07/05 18:11:14.13 1+w/aSOe.net
JVM系でのことりんのポジションって.Net系だと何になるの?

787:デフォルトの名無しさん
18/07/05 18:25:29.62 em8VdMHP.net
すみません。ラムダ式について質問させてください。
純粋にkotlinじゃなくてすみません。
import kotlin.concurrent.*
fun main(args:Array<String>){
var a1=Pn("A")
var a2=Pn("B")
var a3=Pn("C")
thread{a1.en()}
thread{a2.en()}
thread{a3.en()}
}
class Pn(nm:String){
fun en(){
for(i in 1..5){
println("${nm}:${i}")
}
}
}
thread{a1.en()}の波括弧内はラムダ式ということなのですが、
もともとの関数の記述って、どんな記述になりますか?
a1:Pn->a1.eat()
とかですか?

788:デフォルトの名無しさん
18/07/05 18:48:07.71 9m4qXusF.net
質問の意味がわからない

789:デフォルトの名無しさん
18/07/05 19:37:20.63 gU4M+kls.net
>>776
いや、そのラムダは引数に何も受け取ってないよ
クロージャになってて外側のa1とかの変数をキャプチャしてるだけ
JavaScriptとかの書き方で言えば
() => { a1.en() }
みたいな感じ

790:デフォルトの名無しさん
18/07/05 20:08:46.41 bx98WRX+.net
クロージャ使うのは一苦労じゃ

791:デフォルトの名無しさん
18/07/05 20:17:49.90 9m4qXusF.net
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u’. `u-u’

792:デフォルトの名無しさん
18/07/05 20:57:09.18 n+w19a7Z.net
>>776
fun lambda1() {
 return a1.en()
}
thread( lambda1 )

793:デフォルトの名無しさん
18/07/05 22:45:45.28 zhHpKoz0.net
コチン星は他に転用できないでしょ
Javaは何にでも使える
コチン星がそうなったら移住してやんよ

794:デフォルトの名無しさん
18/07/05 22:54:46.98 gU4M+kls.net
逆なんだよなあ

795:デフォルトの名無しさん
18/07/05 22:58:33.72 y9cLPe3E.net
現実には逆だね
Kotlin使ってるような奴はJavaはもちろん他にも複数の言語使える

796:デフォルトの名無しさん
18/07/06 07:14:19.59 BcpJI+Hp.net
今kotlin使ってるやつはJavaとSwiftは書けそうだよな
あと聞くところによるとずっとRuby使ってたweb系の人たちの間でkotlinの人気があるらしい

797:デフォルトの名無しさん
18/07/06 08:51:02.46 8OYGWEQ0.net
KotlinとSwiftは似ているから
iOSとAndroidでお互いのコードを参考にしやすいという点でも
Kotlinを使ったほうが良いよね

798:デフォルトの名無しさん
18/07/06 09:06:38.50 QElqX86J.net
>>778
>>781
ありがとうございました!
納得できました。またよろしくお願いします!感謝です

799:デフォルトの名無しさん
18/07/06 09:16:06.34 mA2hlx7s.net
>>786
うちはまさにそれでやってる。
細かい違いはあれど、両者で大体同じ感じに作れるからだいぶ生産性が上がる。

800:デフォルトの名無しさん
18/07/06 09:32:23.49 abpU4SXk.net
「あれをああいうふうにつくりたい」で片方が概念から違うコード塊だとめげるものね
せめて見る方向は一緒でないと困る

801:デフォルトの名無しさん
18/07/06 09:39:15.11 M3cpa2kA.net
Kotlin, Swift, TypeScript, C#あたりはいいかげん合体して一つになれよとは思う
似たような言語増えすぎ

802:デフォルトの名無しさん
18/07/06 09:58:03.13 HP0oeisi.net
アーキテクチャもMVVMで統一しておくとさらにいいね

803:デフォルトの名無しさん
18/07/06 10:37:25.30 SXzPAxPV.net
合体して!

804:デフォルトの名無しさん
18/07/06 10:43:05.75 zksWstCG.net
>>785
ruby の特徴が groovy 経由で kotlin にとりこまれてるからねぇ

805:デフォルトの名無しさん
18/07/06 10:50:59.18 dSjMYi7e.net
まあHello Worldレベルならどれも大差ないよね

806:デフォルトの名無しさん
18/07/06 11:30:17.98 2AM7zbcj.net
>>789
一度作って終わりなら何でもいいけど、機能追加やらメンテやら考えたら極力設計レベルで近づけておきたいからね。
俺は経験ないけどObjectiveCとJAVAでこれやってた人たちほんとすごい。

807:デフォルトの名無しさん
18/07/06 13:21:00.56 49COMX7t.net
Ruby由来の特徴って?
Pythonから取ってきたようなのはちらほらあるけど。

808:デフォルトの名無しさん
18/07/06 13:28:11.07 nxtJThkD.net
信者の布教

809:デフォルトの名無しさん
18/07/06 13:44:46.19 q/ghlqNX.net
>>796
なんでもかんでもそれで実装しようとして一応作り上げ公開はするもののメンテできず放置するムラ気の情熱

810:デフォルトの名無しさん
18/07/06 14:05:18.34 LdCqv7/c.net
>>796
ヒント:ワシが育てた

811:デフォルトの名無しさん
18/07/06 15:32:07.66 kKlMDWU3.net
>>799
いいや、わしが育てた。

812:デフォルトの名無しさん
18/07/06 15:58:16.16 zvJYjc+f.net
kotlin配列めんどくさすぎwwwwワロタwwwww

813:デフォルトの名無しさん
18/07/06 16:02:32.49 zksWstCG.net
>>796
Kotlin 公式のこのページなんだけど
URLリンク(kotlinlang.org)
むかしは Type-Safe Groovy-Style Builders と呼ばれてた
URLリンク(github.com)
ドキュメントは修正されちゃったけど、機能が修正されたわけじゃない
lambdaを { } で書くのとか、カッコの外に出せるのとか、これ実現するために必須

814:デフォルトの名無しさん
18/07/06 16:15:00.75 CcG3LQ04.net
Kotolinて変数にプリミティブ型が無いけど、
画像処理とか大量にデータ処理すると、Javaより遅くならない?

815:デフォルトの名無しさん
18/07/06 16:28:27.50 zksWstCG.net
>>803
ByteArray使えばよいでしょう

816:デフォルトの名無しさん
18/07/06 17:00:50.17 CcG3LQ04.net
>>804
配列はDoubleArrayとかあるのね
bit演算はushrがあるから、Javaより見易そう(Javaの>>>と>>が見辛過ぎ)なのがいいな
そろそろ切り替える踏ん切りがつきそうになった、ありがとう

817:デフォルトの名無しさん
18/07/06 20:20:35.42 AbsrypZ1.net
>>803
プリミティブに出来るものは勝手にプリミティブになる
Kotlinの
  fun f1(a:Int, b:Int?, c:List<Int>){}
はJavaでの
  void f1(int a, Integer b, List<Integer> c){}
になる
URLリンク(kotlinlang.org)

818:デフォルトの名無しさん
18/07/06 21:01:12.71 g8uAR+7L.net
プリミティブ型がなくてもうまいこと最適化されてだいたいは問題なくなるのではないかな?

819:デフォルトの名無しさん
18/07/06 21:02:17.37 g8uAR+7L.net
うう。リロードし忘れてたらかぶった。

820:デフォルトの名無しさん
18/07/06 22:24:17.82 QG6T2BVC.net
>>806-807
Javaのラッパー型とか考え無くていいのか
上手く出来ているんだな

821:デフォルトの名無しさん
18/07/06 23:30:21.00 4Ugvbwaw.net
ByteArrayとかIntArrayはJavaの呪い

822:デフォルトの名無しさん
18/07/06 23:33:34.92 gLP4VBNq.net
えっと

823:デフォルトの名無しさん
18/07/07 07:47:51.03 uYnOjfeF.net
>>810
何でそう思う?

824:デフォルトの名無しさん
18/07/07 08:02:53.54 1JBcciC6.net
>>810
ほんとそう

825:デフォルトの名無しさん
18/07/07 19:26:53.37 XhDuF4YP.net
data classのcopy()というメソッドは
新しいインスタンスを作るの?
それともインスタンス変数を書き換えるの?

826:デフォルトの名無しさん
18/07/07 20:07:44.59 LTqMROwD.net
>>814
新しいインスタンスを作るよ
その際に新しいインスタンスに対してプロパティの差し替えを指定できる

827:デフォルトの名無しさん
18/07/07 20:15:10.40 VybllwrG.net
イミュータブルデータ

828:デフォルトの名無しさん
18/07/07 22:09:42.29 XhDuF4YP.net
>>815
そうですかコピるんですね、インスタンスはイミューダブルだから

ところでデリゲートって何ですか?

829:デフォルトの名無しさん
18/07/07 22:10:48.19 uYnOjfeF.net
>>817
繊細とか壊れやすいとか、そういう意味だよ

830:デフォルトの名無しさん
18/07/07 23:35:57.76 Ty8z3s6n.net
それはフラジャイルだろ!

831:デフォルトの名無しさん
18/07/07 23:38:31.93 qgEX9CeR.net
小麦粉のこと?

832:デフォルトの名無しさん
18/07/08 00:50:39.49 Ju8r78kR.net
Androi


833:dにはデリゲートなんて用語はない



834:デフォルトの名無しさん
18/07/08 00:55:04.92 sfogbTE4.net
>>817

data class のインスタンスはイミュータブルに作ることもできるけど
別にイミュータブルな保証ないよ
普通に var プロパティ宣言できるし

835:デフォルトの名無しさん
18/07/08 04:35:49.01 PDRntQm6.net
>>819
デリケートだろとつっこむところ?
>>817
クラスAを継承したクラスBを作るときに、継承を使う代わりに、クラスB内にクラスAのインスタンスを持たせて、
クラスBにおけるクラスAのAPI実装をそのインスタンスに丸投げすること。
インターフェースしか定義されておらず、インスタンスはヘルパークラスからしか作れないような場合に便利。

836:デフォルトの名無しさん
18/07/08 08:39:29.95 A+oeHsIU.net
>>817
デリゲートは手動で書く手間を減らす機能だし
動作分かってないと初学者にとって混乱の元だから
「委譲書くの面倒」と思うようになるまで使わなくていい
仕様を知っておきたいならbyキーワードの具体例をググって読むべき

837:デフォルトの名無しさん
18/07/08 08:53:04.34 GTRmE3gZ.net
よくあるのは破壊的操作だけ決まった手順でやりたい可変リスト
内部に可変リストを持たせてListインターフェースをこの可変リストに委譲しつつ、
破壊的操作をするメソッドは自分で実装する

838:デフォルトの名無しさん
18/07/08 13:09:11.90 I8JQ03ez.net
デリゲートゾーンの痒みにデリケア

839:デフォルトの名無しさん
18/07/09 15:42:24.09 k14wcRqL.net
2次元配列てどうやって作るの?
ググっても、一次元配列の説明しかないんだけど

840:デフォルトの名無しさん
18/07/09 16:07:50.43 HEVR++FY.net
「Kotlin 多次元配列」とかでググれば出てくるけど、もっと簡単に作れるようにしてほしいよな
Kotlinはコレクション周りが面倒

841:デフォルトの名無しさん
18/07/09 16:22:32.46 uw3CHAwx.net
ありがとう!多次元配列ででました
リストの中のリストみたいな作り方しかできないんですね

842:デフォルトの名無しさん
18/07/09 16:25:07.73 a7X8gOns.net
Java11で多次元配列が追加されるっぽいし
そのとき一緒にKotlinにも追加されるんじゃないかな

843:デフォルトの名無しさん
18/07/09 19:41:02.60 2W9i2TNQ.net
>>829
でもそれは多次元配列ではないからな
全世界から激しくツッコミ入るからな
「ネストした配列」とかきちんと表現しよう

844:デフォルトの名無しさん
18/07/09 19:42:26.58 CMpb5of+.net
本当の多次元配列とネストした配列の違いってなんなの

845:デフォルトの名無しさん
18/07/09 19:59:47.17 upwaJxXn.net
だっちゅーの

846:デフォルトの名無しさん
18/07/09 20:40:00.23 2EXLNjt4.net
>>832
配列の配列: n個入る内箱をm個並べて入れた外箱、実際には内箱に入る数はそれぞれ違うこともある
二次元配列: 最初からn*mで仕切られた箱
得意なこと、苦手なことも、箱を入れた箱と最初から全部仕切られた箱の関係と似ている
Java自体が真性の多次元配列ないからKotlinにもないんじゃね
ScalaとかGroovyにも真性の多次元配列はないのだろう

847:デフォルトの名無しさん
18/07/09 20:55:27.19 CMpb5of+.net
それって、メモリは所詮一次元だけど
n×mの連続領域確保して[][]でアクセスできるインターフェース提供できれば二次元配列って言えるってこと?
ポインタの配列にしなければいいってことかな??

848:デフォルトの名無しさん
18/07/09 20:56:07.10 NIgnyVo4.net
多次元配列みたいにアクセスできるクラス作って中で一次元配列を全容素数作ってアクセスする時に n * y + x のように計算してアクセスするの作れば、まあなんとなく気分を味わう事はできるな。
あとはうまいこと最適化されて効率よくなる事を祈るのみ。

849:デフォルトの名無しさん
18/07/09 20:57:03.20 NIgnyVo4.net
うう。リロードしてなかったらなんとなく内容が被った。orz

850:デフォルトの名無しさん
18/07/09 21:13:13.46 2EXLNjt4.net
>>835
おおむねそういうこと
配列の配列は縦方向と横方向でアクセスのコストが違うとか
多次元配列は、行をまるごと取り出そうとすると新規に配列を作る必要があるとか、違いがいろいろある
Kotlinに真性の多次元配列はないけど、仮にあったらイテレーションする時も変わってくるはず。
for (item in twoDimesionalArray) { println(item) }
for (innerArray in arrayOfArray) {
for (item in innerArray) { println(item) }
}

851:デフォルトの名無しさん
18/07/09 22:15:19.94 NSgi36DG.net
普通のプログラミングよりPythonのnumpyとかMATLABとか科学技術計算やってた人はイメージしやすいかもね


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1146日前に更新/204 KB
担当:undef