type Numbers struct {
Num1 int
Num2 int
}
type ThreeNumbers struct {
Num1 int
Num2 int
Num3 int
}
func (n Numbers) Sum() int {
return n.Num1 + n.Num2
}
func (n ThreeNumbers) Sum() int {
return n.Num1 + n.Num2 + n.Num3
}
func SumAll(numbers NumberInterface) int {
return numbers.Sum()
}# клонируем репозиторий в соседний каталог
# иначе придётся использовать ключ --force
git clone --no-local . ../clonerepo/
# переходим в свежий клон
cd ../clonerepo
# чистим
git filter-repo --path "path/to/file" --invert-paths
# проверим что файл исчез
git log --all --oneline --name-status -- "path/to/file"
type Forks []struct {
ForkID string `json:"fork_id"`
Income float64 `json:"income"`
Sport string `json:"sport"`
...............
AliveSec int `json:"alive_sec"`
ValuingData ValuingData `json:"valuing_data"`
}type Fork struct {
ForkID string `json:"fork_id"`
Income float64 `json:"income"`
Sport string `json:"sport"`
...............
AliveSec int `json:"alive_sec"`
ValuingData ValuingData `json:"valuing_data"`
}
type Forks []Forkfunc checkBet(body []byte, v *Fork) {
......
func main() {
fn := some
fmt.Println(fn())
fn = other
fmt.Println(fn())
}
func some() int {
return 1
}
func other() int {
return 2
}
Ожидаю что файлы из директории var/www/html попадут на хост в ./www
volumes:
- /папка_на_хосте:/папка_в_контейнере_1
- имя_тома:/папка_в_контейнере_2После этого, если внутри контейнера в этой папке создаётся файл, он оказывается в папке_хоста или томе./var/www/html — будь она папкой контейнера или смонтированной в него папкой хоста или томом докера. При запуске, если там пусто, файлы создаются / записываются контейнером.entrypoint.sh, в который поместите логику инициализации приложения, в т.ч. копирование-создание файлов. Укажите его как ENTRYPOINT контейнера. git update-index --assume-unchanged файл
- document.querySelector('.calculate').addEventListener('click', function () {
+ document.querySelector('form').addEventListener('input', function () {let select = document.querySelector('select').selectedIndex; let selectValue = select + 1; // selectedIndex считается с 0, поэтому +1
let dateStart = document.querySelector('.start_date').value; let dateEnd = document.querySelector('.end_date').value;
let out_3 = document.querySelector('.out_3');for (let i = dateStart; i <= dateEnd; i = i + 24 * 60 * 60 * 1000) {
document.querySelector('form').addEventListener('input', function() {
const { elements } = this;
const data = new FormData(this);
const keys = [ 'enterDate', 'outDate', 'countRooms', 'prepayment' ];
const basePayment = 2000;
const [ enter, out, rooms, prepayment ] = keys.map(k => data.get(k) /* или elements[k].value */);
const days = enter && out && enter < out
? (new Date(out) - new Date(enter)) / (24 * 60 * 60 * 1000)
: 0;
elements.payment.textContent = `${basePayment * days * rooms - prepayment} р`;
});
// Массив для получаемых объектов
const result = [];
// Переменная для следующего URL (изначально содержит первый адрес)
let previousURL = "http://site.com/";
// Цикл
for (let i = 0; i < 10; i++) {
// Получение данных
const response = await fetch(previousURL);
const data = await response.json();
// Добавление полученных данных в общий массив
result.push(data);
// Обновление переменной со следующим URL
previousURL = data.previousURL;
}
// Демонстрация получивлегося массива
console.log( result ) foreach (array_slice($images, 0, 3) as $image) {
$image['thumb_src']
}