It looks like you’re confused by the working of slices and the string storage format, which is different from what you have in C.
- any slice in Go stores the length (in bytes), so you don’t have to care about the cost of the
len
operation : there is no need to count - Go strings aren’t null terminated, so you don’t have to remove a null byte, and you don’t have to add
1
after slicing by adding an empty string.
To remove the last char (if it’s a one byte char), simply do
inputFmt:=input[:len(input)-1]