Dentro da linguagem G#
A linguagem G# em si é direta. O código é estruturado em pacotes, com seções executáveis definidas como funcs. Por padrão, G# usa o .NET System namespace, para que você possa usar construções familiares sem precisar aprender maneiras diferentes de fazer as coisas usuais. Se você não quiser trazer System por padrão, você pode desabilitar as importações como parte da configuração do compilador.
Cada função pode receber parâmetros e retornar valores, com tipos declarados como parte da lista de parâmetros. A lista de parâmetros pode terminar com declarações de tipo para qualquer retorno, para que você possa garantir que está retornando os dados esperados. A maioria dos tipos inclui comprimentos, por exemplo int64embora existam aliases para tipos familiares usados em outras linguagens. Strings permitem adicionar alinhamentos e informações de formatação. Além de funções, você pode definir estruturas e classes para ajudar a lidar com variáveis, com estruturas manipulando valores e classes manipulando referências. Da mesma forma, estruturas e classes de dados permitem tratar variáveis como dados, aplicando cópias e atribuindo valores.
Grande parte da estrutura da linguagem será familiar, especialmente se você estiver acostumado a trabalhar com linguagens como Go. Existem alguns atalhos interessantes, usando recursos como if let para verificar nulos ao analisar parâmetros de função. Você pode usar if let junto com o tratamento de exceções do G# para gerenciar fluxos de programas mais complexos. Outros recursos incluem o uso for in para iterar por coleções, permitindo entregar e usar matrizes de comprimento arbitrário com uma função, sem precisar determinar comprimentos antes de executar operações.
