LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

Ну,согласись, программисты определенно изменились уже сейчас. Хотя некоторые динозавры этого еще не хотят понять. И эти изменения будут нарастать, пока языковые модели не упрутся в некий физический предел, если упрутся.

Вот я фермер. Начал программировать два года назад по необходимости для игры и для гильдии. По сути - нихрена не понимаю еще.

function NsDb:modKey(...)
    local n = select('#', ...)
    if n < 2 then return end
 
    local value = select(n, ...)
    local row_key = select(n-1, ...)
    if not row_key or value == nil then return end
 
    local target = self.input_table
 
    for i = 1, n-2 do
        local key = select(i, ...)
        if not key then return end
        
        local next_table = target[key]
        if not next_table then
            next_table = {}
            target[key] = next_table
        end
        target = next_table
    end
 
    target[row_key] = value
end

function NsDb:getKey(...)
    local n = select('#', ...)
    if n == 0 then return nil end
    
    local target = self.input_table
    
    for i = 1, n-1 do
        local key = select(i, ...)
        if type(target) ~= "table" then return nil end
        target = target[key]
        if target == nil then return nil end
    end
    
    return type(target) == "table" and target[select(n, ...)] or nil
end

Вот без ИИ я бы такое еще лет 5 не смог сделать. Это сейчас как минимум замена документации. Пока я я буду неделю копаться в документации, он мне за секунду подскажет нужные операторы, решения.

Да, мне пришлось конкретно объяснить чего я хочу и перебрать варианты, описания. Да, пришлось углубленно понимать самому что внутри. Но тем не менее. Это нереально крутой инструмент уже сейчас.

Исходная версия LightDiver, :

Ну,согласись, программисты определенно изменились уже сейчас. Хотя некоторые динозавры этого еще не хотят понять. И эти изменения будут нарастать, пока языковые модели не упрутся в некий физический предел, если упрутся.

Вот я фермер. Начал программировать два года назад по необходимости для игры и для гильдии. По сути - нихрена не понимаю еще.

function NsDb:modKey(...)
    local n = select('#', ...)
    if n < 2 then return end
 
    local value = select(n, ...)
    local row_key = select(n-1, ...)
    if not row_key or value == nil then return end
 
    local target = self.input_table
 
    for i = 1, n-2 do
        local key = select(i, ...)
        if not key then return end
        
        local next_table = target[key]
        if not next_table then
            next_table = {}
            target[key] = next_table
        end
        target = next_table
    end
 
    target[row_key] = value
end

function NsDb:getKey(...)
    local n = select('#', ...)
    if n == 0 then return nil end
    
    local target = self.input_table
    
    for i = 1, n-1 do
        local key = select(i, ...)
        if type(target) ~= "table" then return nil end
        target = target[key]
        if target == nil then return nil end
    end
    
    return type(target) == "table" and target[select(n, ...)] or nil
end

Вот без ИИ я бы такое еще лет 5 не смог сделать. Это сейчас как минимум замена документации. Пока я я буду неделю копаться в документации, он мне за секунду подскажет нужные операторы, решения.