golang
June 4, 2021

СodeWars, Golang решаем задачи #1

Строки в golang это что-то особенное, учимся работать с ними

golang strings Remove First and Last Character

Стартую серию статей по решению задач на кодварс.

В каждой заметке будет одна задача либо на GO, либо на SQL.

8 kyu - Remove First and Last Character
It's pretty straightforward. 
Your goal is to create a function that removes the first and 
last characters of a string. You're given one parameter, the original string.
 You don't have to worry with strings with less than two characters.

Задача 8 уровня сложности(на сайте кодварс 8 самый легкий). Удалить первый и последний символ.

Это просто. Твоя задача создать функцию которая удалит первый и последний символ в строке. У тебя один входящий параметр, оригинальная строка. Тебе не нужно беспокоиться за строки состоящие всего из двух символов.


Дана функцию, которую нужно заполнить кодом. Приступим к решению.

func RemoveChar(word string) string {
  }

Первое что пришло в голову определить длину строки перебрать эту строку в цикле и отрезать первый и последний символы.

func RemoveChar(word string) string {
	result := "" // Определяем переменную для возврата
	max := len(word) - 1 // Определяем длину строки	
	for i, sm := range word { //обходим посимвольно строку в цикле
		if i != 0 { if i != max {
			result = result + string(sm)
		}
		}
	}
	return result
}

Это решение будет работать, но оно очень плохое.

Лучшее решение для этой задачи:

func RemoveChar(word string) string {
  return word[1:len(word)-1]
}

Из-за особенности работы со строками в golang, мы можем просто обратится к строке по индексам и вернуть все символы кроме первого и последнего. Такое решение намного быстрее и проще в обслуживании и чтении кода.

Еще немного улучшим код, представим что нам все же может прийти строка длиною 2 или меньше символов.

func RemoveChar(word string) (result string) {
  if len(word) > 2 {
    result = word[1 : len(word)-1]
  }
  return
}