varargとArray<>の引数
関数の引数にvarargを使用した場合とArray<>を使用した場合とでは、JVMのシグネチャが同じになるようだ。
例えば以下のように同じ関数名で、引数がvararg args:Stringのものと、args:Array
fun hogehoge(args:Array<String>){ print("ほげほげA") } fun hogehoge(vararg args:String){ print("ほげほげB") }
このようにエラーになる。
エラー:(8, 1) Kotlin: Platform declaration clash: The following declarations have the same JVM signature (hogehoge([Ljava/lang/String;)V): fun hogehoge(args: Array<String>): Unit defined in marutk in file Main.kt fun hogehoge(vararg args: String): Unit defined in marutk in file Main.kt
Kotlinのエントリーポイント
Kotlinのプログラムはmain関数がエントリーポイントになる。
main関数は引数無しでも、引数ありでもOK。
- 引数無しの場合
fun main() { println("Hello world!") }
- 引数ありの場合
fun main(args:Array<String>) { println("Hello world!") }
または
fun main(vararg args:String) { println("Hello world!") }
ちなみに、引数無しのmain関数はKotlin 1.3で導入された。 https://kotlinlang.org/docs/reference/whatsnew13.html#parameterless-main
gitでブランチきってマージするまで
時々ど忘れしてしまうので、自分用にメモ。
> git branch * develop master > git checkout -b feature/specHoge Switched to a new branch 'feature/specHoge' # なんやかんや > git checkout develop Switched to branch 'develop' > git merge feature/specHoge --no-ff Merge made by the 'recursive' strategy. hoge.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 hoge.txt
- ポイント
マージするとき--no-ff
を忘れない
git の差分比較をWinMergeで表示する
.gitconfig に以下を記述する。
[diff] tool = WinMerge [difftool "WinMerge"] path = C:/Program Files/WinMerge/WinMergeU.exe cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -f \"*.*\" -e -u -r \"$LOCAL\" \"$REMOTE\" [alias] windiff = difftool -y -d -t WinMerge
使い方
- 2世代前のコミット後の内容と現在を比較
git windiff HEAD~~
- トピックブランチ feature/remark と現在のブランチの内容を比較
git windiff feature/remark
- ひとつ前のコミット後とリモートリポジトリ origin/masterの内容を比較
git windiff HEAD~ origin/master
参考