small change css

posts
serr 2025-04-14 21:07:00 +03:00
parent e223135501
commit 68c7390bd2
4 changed files with 15 additions and 4 deletions

View File

@ -31,7 +31,6 @@ main > div {
box-sizing: border-box;
border: 1px solid;
width: 100%;
color: black;
padding-left: 10px;
padding-right: 10px;
}

View File

@ -21,11 +21,11 @@
</div>
<div>
<p>
this site is written in Go without using frameworks, hosting is <a href="https://htk.ge" target="_blank">hostetski</a>, domain bought for the price of a can of beer
this site is written in Go, hosting is <a href="https://htk.ge" target="_blank">hostetski</a>, domain bought for the price of a can of beer
</p>
<p>
<code>2024 - now</code>
</p>
</div>
</footer>
{{ end }}
{{ end }}

View File

@ -1,6 +1,6 @@
# Это тестовый пост
[Этот](/test/) пост был *написан* в файле **формата** .md.
Тестирую систему загрузки постов на сайт, исходно находящихся в .md.
Тестирую систему загрузки постов на сайт, исходно находящихся в markdown.
Используемый фреймворк: [github.com/gomarkdown/markdown](https://github.com/gomarkdown/markdown)

View File

@ -0,0 +1,12 @@
# Как же все таки изменить байты строки в Go?
Просто захотелось чуть чуть поиграться с пакетом unsafe в Go.
Строки (тип string) в Go являются *immutable*, то есть изменять их нельзя. Ну вообще конечно можно, но не напрямую.
Строка в Go под капотом является структурой вида: **указатель на данные, длина данных.** И первое, что приходит в голову чтобы изменить строку - добраться до поля с указателем, прибавить к нему индекс байта который надо поменять, разыменовать полученный адрес и что то ему присвоить.
Но в реальности все не так просто и при попытке что то положить по вычисленному адресу программа упадет с *segmentation fault (SIGSEGV)*. Чтобы этого избежать, предварительно надо выдать права на запись в страничку памяти где находится целевая строка. Сделать это можно через системные вызовы.
Код с пояснениями можно скачать [тут](https://git.hikan.ru/serr/unsafe-change-string-go)
Тестил на **go version go1.22.2 linux/amd64**