Это подробное руководство по основам языка Crystal, включающее примеры программ, которые демонстрируют различные концепции программирования на Crystal.
Каждая программа на Crystal начинается с простого кода:
puts "Hello, World!"
Основные типы данных в Crystal:
Int32
— целые числаFloat64
— числа с плавающей запятойString
— строкиBool
— логические значенияПример использования арифметических операций в Crystal:
a = 10
b = 20
sum = a + b
diff = b - a
prod = a * b
div = b / a
mod = b % a
puts "Sum: #{sum}"
puts "Difference: #{diff}"
puts "Product: #{prod}"
puts "Division: #{div}"
puts "Modulus: #{mod}"
Ввод и вывод данных с использованием gets
и puts
:
print "Enter an integer: "
num = gets.to_i
puts "You entered: #{num}"
Пример использования оператора if-else
:
print "Enter an integer: "
num = gets.to_i
if num > 0
puts "The number is positive."
elsif num < 0
puts "The number is negative."
else
puts "The number is zero."
end
Пример цикла while
:
i = 0
while i < 5
puts "i = #{i}"
i += 1
end
Пример работы с массивами в Crystal:
arr = [1, 2, 3, 4, 5]
arr.each_with_index do |item, i|
puts "arr[#{i}] = #{item}"
end
Пример создания и использования функции:
def greet
puts "Hello from the function!"
end
greet
Пример создания и использования классов:
class Rectangle
def initialize(@width, @height)
end
def area
@width * @height
end
def display
puts "Width: #{@width}, Height: #{@height}, Area: #{area}"
end
end
rect = Rectangle.new(5.0, 3.0)
rect.display
Пример использования наследования в Crystal:
class Animal
def speak
puts "Animal makes a sound."
end
end
class Dog < Animal
def speak
puts "Dog barks."
end
end
animal = Dog.new
animal.speak
В Crystal указатели не используются напрямую, но можно работать с объектами:
num = 10
ptr = num
puts "Value of num: #{num}"
puts "Value via reference: #{ptr}"
num = 20
puts "New value of num: #{num}"
В Crystal управление памятью происходит автоматически с помощью сборщика мусора:
# Crystal управляет памятью автоматически
arr = [1, 2, 3, 4, 5]
puts arr
Пример работы с файлами в Crystal:
# Запись в файл
File.open("example.txt", "w") do |file|
file.puts "Hello, file!"
end
# Чтение из файла
File.open("example.txt", "r") do |file|
content = file.read
puts content
end