vala
1.0.0
1.0.0
  • Учебник Vala
  • Основы
    • Элементы языка
      • Типы данных
      • Управляющие конструкции
      • Методы
      • Делегаты
      • Лямбды / Замыкания
      • Пространства имён
      • Структуры
      • Классы
    • ООП
      • Основы
      • Конструктор
      • Деструктор
      • Сигналы
      • Свойства(Properties)
      • Наследование
      • Абстрактные классы
      • Интерфейсы / Миксины
      • Полиморфизм
      • Сокрытие методов
      • Информация о типах времени выполнения(Run-Time Type Information)
      • Динамическое приведение типов(Dynamic Type Casting)
      • Универсальные шаблоны(Generics)
      • Создание объектов в стиле GObject
      • Интеграция с D-Bus
      • Профили(Другие бэкенды помимо GLib)
  • Продвинутые возможности
    • Ассерты и контрактное программирование
    • Обработка ошибок
    • Управление параметрами
    • Методы с поддержкой синтаксиса
    • Многопоточность
    • Главный цикл(The Main Loop)
    • Асинхронные методы
    • Слабые ссылки(Weak References)
    • Список аргументов переменной длины
    • Указатели
    • Классы не наследующие Object
    • Коллекции
      • Введение
      • HashSet<G>
      • ArrayList<G>
      • HashMap<K,V>
      • Lock-free структуры
  • Экспериментальные фичи
    • Введение
    • Строгий не null режим(Rust mode)
    • Литералы регулярных выражений(regexp)
    • Цепочки связанных выражений
  • Использование и создание библиотек
    • Введение
    • Инструменты
    • Генерирование VAPI файла из предыдущего с помощью vapigen.
    • Использование библиотек
    • Создание библиотеки
    • Vala and C
    • Meson
      • Config file
      • Static Library
      • Shared Library
      • Target GLib Version
  • Технические приёмы
    • Unit тестирование
    • Отладка
    • Использование GLib
  • Продвинуты гайд(WIP)
  • Habr
  • Примеры кода
  • Functional Programming
    • Gpseq
    • Compose
  • Examples
    • Basic
    • GTK
      • Базовые GTK программы
      • Flappy Bird(WIP)
      • DnD
    • Websocket
  • Apps
    • Games
  • Meson-Book
    • MesonBook
    • Wrap
    • Crosscompile
    • Object files
    • Library
    • Executable
    • Code Generation
    • Installing
    • Unit Tests
    • Meson 0.54
    • Meson 0.53
  • golang-book
    • Ваша первая программа
    • Типы
    • UPDATE.MD
Powered by GitBook
On this page

Was this helpful?

  1. Технические приёмы

Использование GLib

немного wiki

GLib — низкоуровневая библиотека, расширяющая возможности, предоставляемые стандартной библиотекой libc языка C.

GLib предоставляет следующие возможности:

  • большой набор базовых и производных типов данных;

  • макросы и развитый механизм отладочных сообщений;

  • строковые функции;

  • функции для преобразования кодировок и поддержки юникода;

  • встроенные макросы gettext для интернационализации;

  • средства для работы с динамической памятью;

  • средства для динамической загрузки модулей;

  • атомарные операции;

  • программные потоки и средства их синхронизации;

  • порождение новых процессов;

  • таймеры, функции для работы с датой и временем;

  • генератор псевдо-случайных чисел;

  • универсальный лексический сканер;

  • синтаксический анализатор параметров командной строки;

  • синтаксический анализатор подмножества данных типа XML;

  • синтаксический анализатор .ini-подобных конфигурационных файлов;

  • средства ввода-вывода;

  • функции перехвата;

  • Shell-related Utilities;

  • синтаксический анализатор файлов, содержащих закладки;

  • средства работы с регулярными выражениями типа Glob.

от меня

Так как GLib является базовой(Core) библиотекой Vala то все её возможности уже реализованы в синтаксисе языка(например ключевое слово async за кулисами создает GTask) однако если вам понадобилось использовать какие либо не задокументированные на valadoc вещи, то это гайд как это сделать руководствуясь только манами GLib (которые написаны на си)

Сам гайд

GLib включает множество утилит, в том числе оболочки для большинства стандартных функций libc и множество другое. Эти инструменты доступны на всех платформах Vala, даже если они не совместимы с POSIX. За полным описанием GLib обратитесь к GLib Reference Manual(Перевод которого у меня тоже имеется). Этот справочник написан по С интерфейсу, но можно легко понять, как его использовать для Vala.

При использовании функций GLib в Vala действуют следующие соглашения об именах:

C API

Vala

Example

g_topic_foobar()

GLib.Topic.foobar()

GLib.Path.get_basename()

Типы GLib можно использовать сходным образом:

Создать экземпляр с

Вызвать член объекта с

GLib.Foo foo = new GLib.Foo();

foo.bar();

Работа с файлами

За примерами гибкого файлового ввода-вывода и работы с файлами обратитесь в Vala/GIOSamples.

Вы можете так же воспользоваться FileUtils.get_contents, чтобы загрузить файл в строку.

string content;
FileUtils.get_contents("file.vala", out content);
PreviousОтладкаNextПродвинуты гайд(WIP)

Last updated 5 years ago

Was this helpful?