Какого типа функция main0
?
Я пишу библиотеку gtk3. Однако для функции g_application_run()
требуется argv
. Конечно, язык ATS может использовать функцию argv
на main0
. Но что это за тип?
Какого типа функция main0
?
Я пишу библиотеку gtk3. Однако для функции g_application_run()
требуется argv
. Конечно, язык ATS может использовать функцию argv
на main0
. Но что это за тип?
Следующий код объявлен в prelude/basics_dyn.dats:
//
symintr main0
//
fun
main_void_0
((*void*)): void = "ext#mainats_void_0"
fun
main_argc_argv_0
{n:int | n >= 1}
(argc: int n, argv: !argv(n)): void = "ext#mainats_argc_argv_0"
//
overload main0 with main_void_0
overload main0 with main_argc_argv_0
//
Как видите, main0
перегружен main_void_0
и main_argc_argv_0
. Тип argv(n)
по существу предназначен для линейного массива строк размера n
, который заканчивается нулевым значением. Обратите внимание, что нулевое значение не считается частью размера.