見出し画像

【Console Application】基本文法 7【学習記】

言語仕様とかそういう手合の話🤤

Q.
Kotlin は混在できたの?
A.
多分 Kotlin が一番柔軟🤤

→アーティファクトビルドは実行形式には向いてない
SNAPSHOTtask.jarからの出力 もリネームするなら結局コマンド打つのでどっちでも似た様な結果

#Kotlin
#Any #artifacts
#学習記

//	基準コード
//	JavaScript
let	b = true;
let	n = 0;
let	s = "string";
let	a = [false,1,"2"];
let	h = {key0:true,key1:-1,key3:"hash"};
//
console.log(`b : ${b}\n`);
console.log(`n : ${n}\n`);
console.log(`s : ${s}\n`);
for(let i=0 ; i<a.length ; i++)	//	(i in a) では順番が保証されない
{
	console.log(`a [${("0"+i).slice(-2)}] : ${a[i]}\n`);
}
for(let i in h)
{
	console.log(`h [${i}] : ${h[i]}\n`);
}


【 Kotlin 編】変数を参照したり配列から取り出したり

今回は Kotlin の出番🤤

//	Kotlin
val	b : Boolean			= true
val	n : Int				= 0
val	s : String			= "string"
val a : Array<Int>		= arrayOf(0,1,2)
val	h : Map<String,Int>	= mapOf("key0" to 1,"key1" to -1,"key3" to 0)

このコードを流し込む前にまず Array や Map で型の混在ができるのか調べてみようかな🤤
Swift と違って Kotlin は Java の中間コードへコンパイルされるみたいだから標準実装ではまず無理という予想は立つけど Map を頑張って改造している可能性が微レ存🤪

[Kotlin] 配列の初期化と使い方
https://pouhon.net/kotlin-array/1305/
違う型が混在している配列の場合、その型はArray<Any>型となります。

Any 型キタ--------🤪--------!!!!

いきなり勝利終了?w
Kotlin 有能の予感🤤
(なお、取り出し方)

画像1

………🙄蘇る無限回廊の悪夢

画像2

Any たん…すこ☺️💕💕💕
問題はこれ、そのまま取り出せるのかどうかってとこ?🙄

画像3

テンプレート文字列中の変数指定波括弧が余計だよって文句言われてるけど無視🤪
コーディング的には短くすべく要らない場合は波括弧を外せって事なんだろうね🙄
駄目ではないのだけど開発が進んだ時に波括弧が残っている方が少しだけ改造が早くなるし変数名が明確になるので個人的には波括弧が付いてる方が好み🤤
そんで入力失敗して怒られるまでが御約束🤪

ビルド👇ポチっとな

画像4

画像5

画像6

🙄🙄🙄

これ、 helloWorld の時にも出たやつだわ🤔
解決できるようにしとかないとまずそう

画像7

調査開始する前に IDE 上で動作させてひとまずコード自体に問題が無い事を確認🤤
あれこれやった挙げ句実は動かないコードでした、じゃ笑えないからね🤪


アーティファクトビルドとメイン・マニフェスト属性

kotlinでコマンドラインからハローワールドしようとしたら「マニフェストが云々」って怒られた話
https://qiita.com/ikngtty/items/35d64700ca2c75b9cf33

なんか皆同じとこでつまずいてる🙄
なんで自動で作るくせにクラス名の埋め込みは自動でやってくれないんだろね?😞

………

この記事、手動で追加してるけどそんな面倒なの許容されるわけないじゃんね?🙄
絶対自動でやる方法が有る筈🤤

kotlin×SpringBootで作ったアプリケーションの実行可能jarファイル作成方法
https://qiita.com/Arinc0/items/8a80b4ee223e2ae74978

画像8

画像9

まぁ task.jar からのビルドじゃないからそうだろうなとは思った😞
多分 SNAPSHOT なら動くんだろうからアーティファクトでも MANIFEST.MF とやらを含むようにしたらいいのかな?🤔

画像10

プロジェクト構造で見る限りではちゃんと設定されてるっぽい😞

画像11

画像12

取り込んでも特に変わらず😞

画像13

怒られた話の記事にある方法の手で書き換えるのやるとまぁ動く🙄

Kotlinハンズオン
https://books.google.co.jp/books?id=PQMxEAAAQBAJ&pg=PA181&lpg=PA181&dq=%22intellij%22+%22kotlin%22+%E3%82%A2%E3%83%BC%E3%83%86%E3%82%A3%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88+%22MANIFEST.MF%22&source=bl&ots=6-CbHiDDao&sig=ACfU3U3uMN0rY1MGtWhcK1pE8qSGbULhJw&hl=ja&sa=X&ved=2ahUKEwiHkf251OX0AhXysFYBHUdbCEgQ6AF6BAgAEAE

市販されてる本でさえ「アーティファクトで出すとクラス指定が無いのよ」って言ってて手で書き換えさせるやり方が書かれているから、アーティファクトビルド経由だと全自動にはならないのかなって諦めた😞


画像14

task.jar で出した SNAPSHOT は特に何もしなくても動くのになぁ…🙄
アーティファクトは基本、単体実行されないライブラリ出力用かな…😞


次回は

変数と反復と基本出力に触れたのでそれらについての纏めを作ろうかな🤤
ソースを纏めるのではなく使い勝手とかの感想みたいなのになる予定🤪🚩

いいなと思ったら応援しよう!