Подается число от 1 до 10. Метод должен составить таблицу умножения введенного числа.
Допустим, подается число
Строка кода
Вот что происходит в каждом шаге:
Допустим, подается число
5
. Получаем:
Code:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
6 * 5 = 30
7 * 5 = 35
8 * 5 = 40
9 * 5 = 45
10 * 5 = 50
C-like:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(MultiTable(5))
}
func MultiTable(number int) string {
var result strings.Builder
for i := 1; i < 11; i++ {
line := fmt.Sprintf("%d * %d = %d\n", i, number, i*number)
result.WriteString(line)
}
return result.String()
}
Строка кода
line := fmt.Sprintf("%d * %d = %d\n", i, number, i*number)
в Go создает форматированную строку, которая представляет одну строку таблицы умножения.line :=
это объявление новой переменнойline
, в которую будет сохранен результат работы функцииfmt.Sprintf
.fmt.Sprintf
это функция, которая форматирует строку. Она принимает строку формата и набор переменных, затем заменяет каждый форматирующий спецификатор в строке формата соответствующим значением переменной."%d * %d = %d\n"
это строка формата, где%d
является спецификатором формата для целых чисел. Каждый%d
будет заменен на соответствующее ему значение из списка аргументов, следующих за строкой формата.i, number, i*number
это аргументы, которые будут подставлены в места спецификаторов%d
в строке формата. Первый%d
заменяется на значениеi
, второй%d
— на значениеnumber
, а третий%d
— на результат выраженияi*number
.\n
в конце переносит еа новую строку
result.WriteString(line)
добавляет строку line
к объекту strings.Builder
, который называется result. strings.Builder
— это эффективный способ построения длинных строк путем последовательного добавления к ним подстрок.Вот что происходит в каждом шаге:
result
— это объектstrings.Builder
, который мы создали для накопления строк, составляющих таблицу умножения.WriteString
— это метод объектаstrings.Builder
, который принимает один аргумент типаstring
и добавляет его к строке, которую мы строим.line
— это строка, которую мы сформировали ранее с помощьюfmt.Sprintf
, представляющая одну строку таблицы умножения.
result.WriteString(line)
, вы фактически добавляете строку line
к текущему содержимому result
. Этот процесс повторяется в цикле для каждой строки таблицы умножения, и в результате result
содержит полную таблицу умножения, которую затем можно вернуть из функции MultiTable
в виде одной строки.
Last edited: