Kotlin 5

■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
2019/04/21(日) 22:55:48.78ID:JMkKpOJG
それ。ぶっ壊れたと思っても適当になんかしてりゃ直ってくれるから優秀。
2019/04/21(日) 23:56:09.92ID:+YkyhY+W
まったく毎度毎度グーグルの仕事はほんんんんと雑だな
2019/04/22(月) 00:58:40.19ID:47gIWCEb
fragmentのbindingってlateinitでvarにするのとby lazyでvalにするのとどっちが正解ですか
2019/04/22(月) 03:51:49.53ID:SyBBal55
>>509
はい
518デフォルトの名無しさん
垢版 |
2019/04/22(月) 10:56:56.63ID:QiOq/xsC
>>512
thx
found great articles in Qiita concerning Gradle build tool.
2019/04/22(月) 12:17:09.85ID:iCdpr57v
JVMが有償化したらおまえら阿鼻叫喚
2019/04/22(月) 12:49:18.33ID:+g+F61Q1
1年くらい前は確かに阿鼻叫喚だったけど今となってはもう誰も問題だと思ってない
2019/04/22(月) 13:54:04.36ID:5CpOs8vM
>>519
JVM, JRE, JDKが今どんな状況か分かってなさそう
2019/04/22(月) 14:54:26.97ID:3J9RCiSz
>>521
詳しく頼む
523デフォルトの名無しさん
垢版 |
2019/04/22(月) 16:23:17.22ID:QiOq/xsC
>>522
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, built on April 10, 2019
JRE: 1.8.0_152-release-1343-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.3

これでどう?
524デフォルトの名無しさん
垢版 |
2019/04/22(月) 16:29:37.09ID:QiOq/xsC
俺、AndroidStudio3.4をinstallしてからGradle sync failed問題を解決しようとして、Oracle JDK8u212ってのをinstallしちまった。

AndroidStudio3.4にはOpenJDKってのが入ってるのか?
Oracle JDK8u212ってのはuninstallしても良いのか?

ちなみに、Command Lineでjava -vすると
>java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
2019/04/22(月) 16:34:09.84ID:952sQ1RS
>>524
Android Studioには専用にカスタマイズされたOpenJDKが組み込まれててそれを使って動いているから、システムに別のJDKを入れようが入れまいが関係ない
526デフォルトの名無しさん
垢版 |
2019/04/22(月) 16:35:59.31ID:QiOq/xsC
ちなみにgradleってファイル名のbash scriptがAndroidStudio3.4には入っていて、
1. $JAVA_HOME
2. which java

上記からjavaコマンドの場所を検索してgradle-launcher-5.1.1.jarを動かしてるみたいなんだけど。
2019/04/22(月) 16:37:13.18ID:952sQ1RS
で、何がわからなくて何が聞きたいの?
528デフォルトの名無しさん
垢版 |
2019/04/22(月) 16:40:22.54ID:QiOq/xsC
>>525
なるほど!
ってことは、Oracle版JDKはuninstallしてもOK?

以下のフォルダをごそっと削除してしまいたいんだけど。

> /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home
2019/04/22(月) 16:49:59.02ID:952sQ1RS
>>528
Android Studioを動かすだけなら消しちゃって大丈夫。
そのパソコンで他にjavaに依存している何かを動かしてるなら消しちゃダメ。
530デフォルトの名無しさん
垢版 |
2019/04/22(月) 18:10:15.79ID:QiOq/xsC
>>529
thx
javaに依存してる何かは、無いです。

kotlinc(Kotlin Compiler)コマンドを使いたいので
>brew install kotlin
ってコマンドを打とうとしてます。
kotlinがJREを必要とするなら、JREも同時にbrewがinstallするでしょう。
だったら、消さずに残すのが良いでしょうか?
2019/04/22(月) 19:06:49.70ID:R7Rys8j6
幼稚園児が増える季節か
2019/04/22(月) 19:49:54.02ID:BvK+7rjz
この前も別の初心者がkotlincで詰まってたんだけど、どこかの有名な入門サイトがコマンドライン推奨でもしてるの?
正直kotlin書くならIDE前提だろうからコマンドラインでコンパイラの使い方を覚える必要なんて全くないと思うんだが。
2019/04/22(月) 20:19:08.99ID:SyBBal55
>>532
同じ人なのでは
n=1
2019/04/22(月) 20:20:41.47ID:47gIWCEb
dagger
535デフォルトの名無しさん
垢版 |
2019/04/22(月) 20:31:59.51ID:QiOq/xsC
>>532
うっそーん。
コマンドラインでチョコっと、コードを試したいってこと無い?
IDEよりVimが好きな俺だけか?

ようやく、Quickrun.vimが動くようになって、今コレ読んでるところ。

はじめてのKotlin。Javaと比較してみた
https://qiita.com/hituziando/items/fa2dc4097b24ab78276e

30分で覚えるKotlin文法
https://qiita.com/k5n/items/cc0377b75d8537ef8a85
2019/04/22(月) 20:41:55.57ID:47gIWCEb
それならブラウザ上で実行できるplayground的なものが公式にあったはず
2019/04/22(月) 20:49:23.39ID:952sQ1RS
ちょっと書いてちょっと動かすにしてもIntelliJでRunした方がいいしな、デバッガが超優秀だし
Vimで書いてコマンドラインで実行ってのは確かに昔Javaを勉強した頃はやったけど、
今となっては出汁をとるのに鰹節を削るところから始めるような古めかしさを感じる
2019/04/22(月) 20:51:00.58ID:952sQ1RS
まあ好みだからそれがやりたいなら良いとは思うよ
仕事で新人がそんなことで詰まってたらやんわり注意するかもしれんけど
2019/04/22(月) 20:51:15.45ID:MftVaIwk
そういうときはREPL使ってる
2019/04/22(月) 21:14:37.90ID:j5GMJ/X8
単一ファイルを少し変更したいときはエディタ。
それ以外はIDEを使う
541デフォルトの名無しさん
垢版 |
2019/04/22(月) 21:42:39.28ID:QiOq/xsC
>>537
三大Java IDEは気にはなってるけど、今の所リソース食いそうで躊躇してます。

今の所、Referenceの検索容易性から俺にはVimかなぁ。
デバッグ環境はpoorかな。print文を埋め込むしか、今の所は手が無しかな。

デバッグが必要ならAndroidStudio起動して、なおかつKotlin Scriptに変換して動かす事にします。

ScriptじゃないKotlinコードをAndroidStudioで動かす事は出来ないのかな?よく解らん。

Xcodeならplayground作れるんだが。
2019/04/22(月) 21:53:50.10ID:BvK+7rjz
君、謎の行動力がありそうでそれはいいんだけど、
本当に何から何まで無駄なことばっかりやってるからまず最初に調べる癖をつけたほうがいい
この世界は一にも二にもまずは調べることが何より大事
2019/04/22(月) 22:12:50.79ID:5CpOs8vM
KotlinやるならIntelliJ一択
あとガワが違うだけでAndroid Studioの中身はIntelliJ
※Android以外のプロジェクト作成など、一部の機能を非表示にしている
2019/04/22(月) 22:19:17.89ID:BvK+7rjz
Kotlin勉強したいならIntelliJの無償版使うのが1番おすすめだねえ
ちなみにAndroid Studio動かすのと消費するリソースは同じ、何せほぼ同じものだし
2019/04/22(月) 22:23:01.40ID:5CpOs8vM
>>522
・JVMはJREの一部、JREはJDKの一部
・Java9以降「システムへの単一JREのインストール」は無くなっており、
 JDKから各アプリの同梱用JREを生成する (jdeps/jlink)
・OracleJDKに含まれるJVMは既に有償化されている
・OpenJDKに含まれるJVMは今後も有償化されることは無い
2019/04/22(月) 23:33:08.26ID:2FYuav9u
>>545
ありがとう
十分に理解できました
547デフォルトの名無しさん
垢版 |
2019/04/23(火) 12:05:16.04ID:3Q52IgbA
>>535
>はじめてのKotlin。Javaと比較してみた
>https://qiita.com/hituziando/items/fa2dc4097b24ab78276e
>
>30分で覚えるKotlin文法
>https://qiita.com/k5n/items/cc0377b75d8537ef8a85

もういっちょ!
Kotlinまとめ - 文法詳解 - クラスとそのメンバ
https://qiita.com/hicka04/items/6f47f505d7b68ede3680
548デフォルトの名無しさん
垢版 |
2019/04/23(火) 13:16:20.26ID:gv0SOq8d
>>535
ある。ちょこっとする時は例えWindowsで IntelliJ 起動中でも Linux サーバ側でREPLやるな。
なんでかというと IntelliJ のREPLのウインドウはなんか出力がすぐ出なかったりでおかしいから。
その他短すぎるプログラムのためにわざわざプロジェクト作ったり packge 作るのもアホらしい時とか。
549デフォルトの名無しさん
垢版 |
2019/04/23(火) 14:13:43.00ID:3Q52IgbA
Android Studio残念ポイント!

1. Android Projectしか開くことができない。
2. Hello Worldするhello.ktを開くことができない。

なんで?そう言う時は、IntelliJ使えってことか?▶なんだろうなぁ。
550デフォルトの名無しさん
垢版 |
2019/04/23(火) 14:52:10.33ID:67h9+wNp
>>548,549
JUnit使う手がある。
しかも、main毎にファイル分けるとかしなくていいし。
2019/04/23(火) 14:54:14.57ID:TrDrz5+t
>>548
IntelliJのあれはまともに動いてないんじゃないかとずっと思ってる
まともに使えてる人いるのだろうか…?
2019/04/23(火) 15:47:52.74ID:KnPjeA9Q
Intの変数名をintってするのってまずい?

val int : Int = 0

こういうの
553デフォルトの名無しさん
垢版 |
2019/04/23(火) 15:52:03.96ID:3Q52IgbA
>>548
REPLねぇ。

Ruby, JavaScript(Node.js), SwiftのREPL環境を使ったことあるけど、Reflection機能が充実している言語(ruby)以外、イマイチだなぁ。

コードの編集も不自由だし。

あんた、本当にLinux側でREPLする事あるの?
554デフォルトの名無しさん
垢版 |
2019/04/23(火) 15:54:20.98ID:3Q52IgbA
>>552
怖いなぁ。そのコード。
俺、さっき、setNameってメソッドを作ったら、clashしてるって怒られた。
clash = conflict って意味らしい。
java.lang.StringのsetNameメソッドとコンフリクトしてるから、コンパイルしないんだって。
2019/04/23(火) 16:06:01.49ID:KnPjeA9Q
そういうことあるのか
でもIntがintじゃないのってintを変数名で使ってもいいよっていう意思を感じるんだよなあ

val hoge : Hoge

ってすることを考えると

val int : Int

も自然な気がする
2019/04/23(火) 16:09:50.49ID:KnPjeA9Q
ああでもjavaは予約語でintだめなのか
やっぱりやめておこう
2019/04/23(火) 16:25:21.03ID:xD8uuYM0
そもそも逆コンパイルしたソースじゃないんだから
意味のある変数名付けなよ
558デフォルトの名無しさん
垢版 |
2019/04/23(火) 16:31:00.98ID:3Q52IgbA
macOS10.14.3
AndroidStudio3.4
環境です。API Referenceを参照するには、どうすれば?
Command-Jで起動するかと思いきや?何も起こらないっす。

Webサイトへ行かないとダメなのかな?
559デフォルトの名無しさん
垢版 |
2019/04/23(火) 17:37:07.37ID:gv0SOq8d
>>553
ちょっと試す時とかによく使うよ
560デフォルトの名無しさん
垢版 |
2019/04/23(火) 17:41:27.91ID:3Q52IgbA
>>559
thx
そっすか。
561デフォルトの名無しさん
垢版 |
2019/04/23(火) 18:02:43.25ID:3Q52IgbA
>>558
see the hit result of Help>Search(Documentation).
You can retrieve the documents by ctrl-J@macOS as well.
2019/04/23(火) 19:19:13.65ID:IWDMUBZh
>>555
とりあえず変な癖をつける前に『リーダブルコード』を読んでくれ、頼むから
2019/04/23(火) 19:47:01.75ID:hcUTeQ5O
リーダブルコード読みやすいしわかりやすいし為になるし
書いたやつ神
564デフォルトの名無しさん
垢版 |
2019/04/23(火) 19:49:26.39ID:3Q52IgbA
>>562
>リーダブルコード
この本そんなに良い本なのか?

ペラペラ見たことあるけど、すでに知ってること、というか、実践していることしか書いてなかった。
2019/04/23(火) 19:52:05.70ID:Ky48Nwl1
>>564
嘘だ
566デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:08:14.43ID:gv0SOq8d
>>564
じゃあその本に書いてないことが書かれた本を出してくれ。Kindle版だけでもいいから。
2019/04/23(火) 20:16:21.90ID:IWDMUBZh
>>565
知っていることを再認識させてくれる良書ではある
2019/04/23(火) 20:18:24.37ID:IWDMUBZh
何でIDが同じになるんだよ
同じプロバイダーなのか
569デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:22:11.04ID:gv0SOq8d
たまーに同じID出ることあるな。ものすごく希だが。
きっと今日は良いことあるよ。あと3時間40分ぐらいで終わるけど。
570デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:22:12.06ID:3Q52IgbA
>>565
嘘じゃない。
ああぁ。俺は間違ってないんだな。という感じ。
まあ、詳細に読んだわけでは無いし、プログラマが知るべき97のこと、って本にも似たような事が書いてある。

Matzも「名前重要」なんて事を、97本に寄稿している。
プログラミング作法、なんかの方がよっぽど良かったな。俺には。
571デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:24:15.75ID:3Q52IgbA
>>569
って事はHash algorithmがpoorってこった。
2019/04/23(火) 20:25:36.05ID:B8eC+d1i
コードコンプリート
573デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:27:52.73ID:3Q52IgbA
>>570
>Matzも「名前重要」

私の設計上の座右の銘は「名前重要」です。あらゆる機能をデザインする時に、私はその名前にもっともこだわります。

courtesy of Matz
2019/04/23(火) 20:29:32.04ID:IWDMUBZh
プログラミング作法
プログラム書法
ソフトウェア作法

全てブライアン・カーニハン御年77歳の名著
575デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:31:32.66ID:gv0SOq8d
>>571
まあそういうことだな。
こんな掲示板でrichにしてどうするって感じはするが。
576デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:32:56.33ID:3Q52IgbA
>>566
じゃぁ、一つ俺の考え方を!

狭いスコープの中を生きる変数は、名前が短くても良い。
e.g. str1 = “OK”

広いスコープの中を生きる変数の名前は、長い名前が必要。
e.g. numberOfBooks = 100

何時いかなる時も、意味ある変数名をつけるのは、俺は反対だ。
変数名を考える事に、時間が惜しい時もある。
2019/04/23(火) 20:33:50.86ID:PyZ6tY2R
拡張プロパティに値セットする方法ある?
578デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:36:26.55ID:gv0SOq8d
やはりプログラミングも茶道とか華道とかと同様にプログラミング道を作ってわびさびが必要な時代が来たのかも知れないな。
2019/04/23(火) 20:36:27.27ID:IWDMUBZh
>>576
そ、ループ変数なんて i, j, k, ....nで良いやん
2019/04/23(火) 20:38:43.46ID:PyZ6tY2R
でもkotlinでforとか使わなくね?
581デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:42:02.64ID:gv0SOq8d
>>576
変数名を日本語にすれば良い。
ソース丸ごと世界に公開する予定がないならその方が分かりやすくて良い。
日本語知らないやつには難読化して軽くプロテクトが掛かった状態にもなる。
582デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:54:10.92ID:3Q52IgbA
>>581
昔、英語が出来なかった時には、
kabuPrice
とか
kabuka
なんて恥ずかしい名前使ってたけど、
今では、
sharePrice
でないと、code reading時にストレス感じるわぁ。
583デフォルトの名無しさん
垢版 |
2019/04/23(火) 20:57:09.18ID:gv0SOq8d
漢字使え漢字
584デフォルトの名無しさん
垢版 |
2019/04/23(火) 21:02:15.89ID:3Q52IgbA
val 感じ = "感じ"
print(感じ)
なんと、warningは出るが、実行可能。
585デフォルトの名無しさん
垢版 |
2019/04/23(火) 21:05:59.98ID:3Q52IgbA
Qiita見ながらKotlin修行中だけど、
Jump Command便利そう。
return@forEach
continue@loop
return@loop
とか言うやつ。

これSwiftに欲しい。
586デフォルトの名無しさん
垢版 |
2019/04/23(火) 21:15:06.63ID:3Q52IgbA
そんなことより、API referenceってかDocumentをofflineで見る手段、どうしてる?
Zeal, Velocity, Dashなんかを使ってるの?
Android StudioでAppCompatActivetyを引くと

android.support.v7.app.AppCompatActivity public AppCompatActivity()

Gradle: com.android.support:appcompat-v7:28.0.0@aar

たったコレだけしか表示されないっす。
2019/04/23(火) 21:32:38.61ID:bGCgvaJg
>>517
俺も謝っておく
触ったすまん
2019/04/23(火) 21:53:05.69ID:strBUBex
>>585
便利な反面1歩間違えると悲惨なコードになりそうだな
2019/04/23(火) 22:46:19.69ID:B8eC+d1i
尻でも触ったのか
2019/04/23(火) 23:21:01.87ID:IWDMUBZh
>>585
Kotlinにあるでしょそれ
https://kotlinlang.org/docs/reference/returns.html
2019/04/23(火) 23:23:43.15ID:IWDMUBZh
ごめん間違えた、SwiftにあるからKotlinに欲しいって読み違えた
Xamarinのライセンス買ってくる
2019/04/24(水) 05:30:04.16ID:BhgQi2cO
悲惨なコードとは?
2019/04/24(水) 05:38:27.15ID:MHxaAVIF
goto文みたいに次にどこに行くのか読みにくいって意味じゃないかな
そんなことはないけどね
2019/04/24(水) 05:51:11.02ID:kB2a7+Os
変数名漢字って結構有りだと思う
平均からすれば英語かなり必死に勉強したほうだと思うけど、ネイティブからすれば変な英語使ってるって自覚あるし
ネイティブ的な感覚がないから、命名には常に苦労する
もちろん特定用途でしか使えない手法だけど、やっぱり母国語ってわかりやすいよね
英語圏のやつらにスーパハカーが多いのはそういう理由もあるよな、母国語でプログラムできるのうらやましいわ
595デフォルトの名無しさん
垢版 |
2019/04/24(水) 07:33:38.62ID:ZqBzQREh
>>594
英語人口20億、英語母語5億
くらいじゃない?

チェコ、ロシア、ルクセンブルグにHacker多い印象が俺にはある。
596デフォルトの名無しさん
垢版 |
2019/04/24(水) 11:18:15.23ID:ZqBzQREh
Constructorの書き方がムズイ。
primery, secondary constructorとか、Swiftには無いし。

Kotlinスタートブック、はしばらく様子見。今の所買わない方向で…
だって、2016年の本って、情報が古そうだし。
597デフォルトの名無しさん
垢版 |
2019/04/24(水) 12:11:30.51ID:f6AiwYyw
そのうち在日ユダヤが「日本人にベーグル盗まれた」なんて狂言やりそう
2019/04/24(水) 12:20:40.85ID:ymPUK1bE
>>594
日本語固有のややこしい漢字の名称を無理やり英語にするよりはそのまま使った方が可読性もはるかにいいわな
何か不都合が起きたらIDEでリネームすりゃいいだけの話だから、全然ありだと思う
俺はテストケース名は日本語がんがん使う
2019/04/24(水) 12:48:24.16ID:CTi91KC0
>>596
Swiftの designated initializer ≒ Kotlinの primary constructor
Swiftの convenience initializer ≒ Kotlinの secondary constructor
2019/04/24(水) 13:08:03.94ID:CTi91KC0
>>599の具体例

Swift
https://ideone.com/48Boj1

Kotlin 比較用
https://ideone.com/ovwjrs

Kotlin 短縮
https://ideone.com/IcR8Wo
2019/04/24(水) 13:28:15.20ID:CQvKnKTI
>>577だけどこれ無理っぽいな
2019/04/24(水) 14:01:42.54ID:CTi91KC0
>>577
勧めるものじゃないけど、一応疑似的にならば
https://ideone.com/7lTdsi

class A {}

private val xname = WeakHashMap<Any,String?>()
var A.name: String?
get() = xname[this]
set(v:String?) { xname[this] = v }
603デフォルトの名無しさん
垢版 |
2019/04/24(水) 14:14:45.53ID:ZqBzQREh
>>599
thx
604デフォルトの名無しさん
垢版 |
2019/04/24(水) 14:19:09.62ID:ZqBzQREh
>>602
Kotlin day3の俺には、なぜAのインスタンスがnameプロパティを持つのか?
良く解らん。
Rubyみたいに、Aを再オープンしてるのか?
605デフォルトの名無しさん
垢版 |
2019/04/24(水) 14:22:08.49ID:ZqBzQREh
>>604
fun mainの外でthisは何を指してるのだ?
606デフォルトの名無しさん
垢版 |
2019/04/24(水) 14:28:29.52ID:ZqBzQREh
>>605
>fun mainの外でthis
ってのはMainKtのインスタンスってことか?
うぅーん。後で確認。

fun main(args: Array<String>) {}

in a file called Main.kt will compile to something like:

public class MainKt {
public static void main(String[] args) {}
}
2019/04/24(水) 14:55:22.29ID:CTi91KC0
>>604
602は拡張プロパティとシングルトンのWeakHashMapを利用している
詳細はgoogleで

拡張プロパティ:
見た目はプロパティだが実際のところ
staticメソッドのシンタックスシュガー

fun A_name_get(thisObj: A): String? {
  return xname.get(thisObj)
}

println( a.name )
 ↓
println( A_name_get(a) )


WeakHashMap:
キーがGC対象となるのを阻害しないMap
aとnameの関連付けはここに入っている
aがへの参照が無くなったら、nameへの関連付けもCG対象になって消える
608デフォルトの名無しさん
垢版 |
2019/04/24(水) 15:34:34.20ID:ZqBzQREh
>>607
>拡張プロパティ

気になる!

Rubyの特異メソッドみたいなもんか?
特異メソッド:クラスに住んでるメソッドとは異なり、オブジェクトに住んでるソレ!
609デフォルトの名無しさん
垢版 |
2019/04/24(水) 15:49:00.84ID:ZqBzQREh
>>608
特異メソッドとは違うみたい。

Rubyのクラスの再オープン、オープンクラス、monkey patching
とか言う邪悪なテクみたい。

Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。
610デフォルトの名無しさん
垢版 |
2019/04/24(水) 15:52:13.17ID:ZqBzQREh
うぅーん。
top level でthisが何を指しているのか?
よく解らん。
2019/04/24(水) 15:52:31.03ID:CTi91KC0
連投せずググりなさい
612デフォルトの名無しさん
垢版 |
2019/04/24(水) 15:56:37.35ID:ZqBzQREh
>>610
きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。

と言う事にしておこう。

拡張関数、拡張プロパティー、が必要になった時のメモ

Kotlinの拡張関数と拡張プロパティについて
https://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61
2019/04/24(水) 17:00:48.57ID:HA70GdMc
>ID:ZqBzQREh
日記は自分のブログでやってくれ
2019/04/24(水) 17:06:36.37ID:ymPUK1bE
散々言われてるみたいだけどまずとりあえずググる習慣をつけなさい
君はしなくていい回り道が多すぎる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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