Как определить тип сборки в проекте kotlin-multiplatform

Вы можете использовать функцию commandArgs, чтобы получить все параметры, которые были переданы Rscript, фактическому интерпретатору R и найти их для --file=. Если ваш скрипт был запущен с пути или был запущен с полным путем, script.name ниже начнется с '/'. В противном случае это должно быть относительно cwd, и вы можете выполнить два пути, чтобы получить полный путь.

Edit: похоже, что вам понадобится только script.name выше и снять финальную составляющую пути. Я удалил ненужный образец cwd() и очистил основной скрипт и отправил свой other.R. Просто сохраните этот скрипт и скрипт other.R в том же каталоге, chmod +x, и запустите основной скрипт.

main.R :

#!/usr/bin/env Rscript
initial.options <- commandArgs(trailingOnly = FALSE)
file.arg.name <- "--file="
script.name <- sub(file.arg.name, "", initial.options[grep(file.arg.name, initial.options)])
script.basename <- dirname(script.name)
other.name <- paste(sep="/", script.basename, "other.R")
print(paste("Sourcing",other.name,"from",script.name))
source(other.name)

other.R :

print("hello")

output :

burner@firefighter:~$ main.R
[1] "Sourcing /home/burner/bin/other.R from /home/burner/bin/main.R"
[1] "hello"
burner@firefighter:~$ bin/main.R
[1] "Sourcing bin/other.R from bin/main.R"
[1] "hello"
burner@firefighter:~$ cd bin
burner@firefighter:~/bin$ main.R
[1] "Sourcing ./other.R from ./main.R"
[1] "hello"

Это то, что я считаю дехман ищет.

1
задан Diego Palomar 18 January 2019 в 13:49
поделиться

1 ответ

Используйте функции expected и actual. Таким образом, в common вы создаете что-то вроде expect fun isDebugEnabled(): Bool, затем в iOS вы реализуете это с помощью специального API для iOS, аналогично для Android.

https://kotlinlang.org/docs/reference/platform-specific-declarations.html

0
ответ дан Eugene Petrenko 18 January 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: