AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
user29889977
Asked: 2025-04-12 09:37:47 +0800 CST

Como transformar TypeScript em tipos typeof para o próprio tipo?

  • 5

Vamos imaginar que eu tenha uma função. É uma função muito boa, muito amigável. E ela recebe um argumento, vamos chamá-la de type. Mas adivinhe? Na verdade, é uma string! Deixe-me dar um exemplo:

function returnWithType(o: any, type: 'string' | 'number') {
  if (typeof o === type) return o
  throw new Error(`AHHHH!!!!!`)
}

Viu o que eu fiz? Comparei o tipo com o tipo!

Mas, ok, agora deixe-me perguntar isto... como posso especificar o tipo de retorno real da função , de modo que se eles passarem "string", o tipo de retorno seja string, e o mesmo para number , mas "number"em vez de "string"assumir que eles passaram o valor da string "number"para o segundo parâmetro neste caso???

Eu basicamente quero isso:

function returnWithType(o: any, type: 'string' | 'number'):
  asserts typeof o === as // <---- THIS
{
  // ...
}

Ou talvez isto:

function returnWithType(...):
  type extends 'string' ? string :
  type extends 'number' ? number :
  boolean
{
  // ... solves world hunger ...
}

Acabei de perceber que posso fazer isso criando o genérico T extends ...e retornando um ternário baseado em T, mas existe alguma maneira mais limpa , talvez com alguns builtins inteligentes, de derivar essas informações automaticamente???

typescript
  • 1 respostas
  • 46 Views
Martin Hope
Paul C
Asked: 2025-04-12 06:30:33 +0800 CST

Pickle funciona, mas falha no pytest

  • 6

Criei um módulo "persist" contendo uma função obj_pickle que estou usando para conservar vários objetos no meu projeto. Funciona bem, mas está falhando no pytest, retornando:

>           pickle.dump(obj, file_handle, protocol=protocol)
E           AttributeError: Can't pickle local object 'test_object.<locals>.TestObject'

Correndo:

  • python 3.12
  • Versão do pytest: 8.3.5

Vejo que há problemas semelhantes relacionados ao multiprocessamento, mas não acho que o PyTest esteja expondo esse problema. Código abaixo, e muito obrigado.

# lib.persist.py
from pathlib import Path
import pickle


def obj_pickle(obj: object, dir:Path, protocol: int = pickle.HIGHEST_PROTOCOL) -> None:
    """
    Pickle an object to a byte file.
    """
    if not dir.exists():
        dir.mkdir(parents=True, exist_ok=True)
    path = Path(dir, obj.instance_name + '.pkl')
    with open(path, "wb") as file_handle:
        pickle.dump(obj, file_handle, protocol=protocol)
    print(f"{obj.__class__.__name__} object {obj.instance_name} saved to {path}")
# tests.test_persist.py
from pathlib import Path

import pytest

from lib.persist import obj_pickle

TEST_DIR = Path("test_dir")


@pytest.fixture
def test_object():
    class TestObject():
        def __init__(self, instance_file_name):
            self.instance_file_name = instance_file_name
            self.data = "This is a test object."

    test_object = TestObject("test_object_file")
    
    return test_object


def test_obj_pickle(test_object):
    obj_pickle(test_object, Path(TEST_DIR))
    path = Path(TEST_DIR, "test_object_file" + ".pkl")
    assert path.exists()
python
  • 2 respostas
  • 33 Views
Martin Hope
user30247989
Asked: 2025-04-12 05:15:30 +0800 CST

Como criar uma nova coluna que indica o máximo móvel

  • 6

Tenho uma coluna que possui valores como abaixo:

x <- c(23, 17, 25, 22, 21, 51, 22, NA, 62, 27, NA, NA, 27, 50, NA, 
NA, 22, 19, 27, 27, NA, 25, NA, NA, 25)

Quero criar uma nova coluna que indique se o valor na coluna acima até aquela linha é o valor máximo até o momento.

Portanto, para a primeira linha, a nova entrada de coluna será 1, já que 23 é o primeiro valor mais alto.

A segunda linha na nova coluna será 0, pois 17 não é o máximo de 23 17

A terceira linha na nova coluna será 1, já que 25 é o máximo de 23 17 25

E assim por diante...

A nova coluna deve ser como

1 0 1 0 0 1 0 .. 

Não tenho certeza de como fazer isso. Posso pensar em loops, mas deve haver uma maneira mais clara.

Os NA devem ser mantidos

  • 1 respostas
  • 53 Views
Martin Hope
ereOn
Asked: 2025-04-12 05:11:18 +0800 CST

Essa lógica interna de strings é válida?

  • 8

Eu criei este código para internar strings e manipular &'staticreferências a elas.

Acredito que seja verdade, mas gostaria de ter uma confirmação disso.

Minha justificativa é a seguinte:

  • O HashSeté alocado estaticamente e não causa realocação de seus valores (seu armazenamento interno pode ser realocado, mas o Stringpróprio não deve).
  • Qualquer inserção é protegida pelo Mutex.
  • Como eles Stringnunca são removidos do HashSet, transmuteo envio do conteúdo deles &'staticdeve ser seguro.
use std::{collections::HashSet, sync::Mutex};

lazy_static! {
    static ref LOCKED_HASH: Mutex<HashSet<String>> = Mutex::new(HashSet::new());
}

pub fn intern_string(input: &str) -> &'static str {
    let mut lock = LOCKED_HASH.lock().unwrap();
    if let Some(val) = lock.get(input) {
        unsafe { std::mem::transmute::<&str, &'static str>(val) }
    } else {
        lock.insert(input.to_string());
        let interned = lock.get(input).unwrap();
        unsafe { std::mem::transmute::<&str, &'static str>(interned) }
    }
}

Isso é realmente seguro?

rust
  • 1 respostas
  • 68 Views
Martin Hope
Ayrix
Asked: 2025-04-12 04:56:20 +0800 CST

Função do Firebase Cloud - Não é possível encontrar a região do bucket de armazenamento

  • 6

Tentando implantar minha função de nuvem do Firebase e estou recebendo o seguinte erro:

Erro: Não é possível encontrar a região do bucket de armazenamento

insira a descrição da imagem aqui

A função que estou tentando implementar se parece com:

import {initializeApp} from "firebase-admin/app";
import {getStorage} from "firebase-admin/storage";
import {getFirestore} from "firebase-admin/firestore";
import {logger} from "firebase-functions";
import {onDocumentDeleted} from "firebase-functions/v2/firestore";
import {onObjectFinalized} from "firebase-functions/v2/storage";

initializeApp();

export const onThumbUploaded = onObjectFinalized(
  {
    bucket: "<MY_PROJECT_ID>.appspot.com",
    region: "us-central1",
  },
  async (event) => {
    //... rest of my code...
  });

insira a descrição da imagem aqui

Não consegui encontrar nada sobre esse assunto no Google ou no AI-Tools.

  • 1 respostas
  • 20 Views
Martin Hope
Rick
Asked: 2025-04-12 04:43:05 +0800 CST

É possível passar uma variável booleana para um componente de saída de roteador pai?

  • 6

A ideia básica é que eu queira que o texto "Carregando" seja exibido enquanto o componente filho estiver carregando dados e, em seguida, desapareça quando terminar. Mas como o componente pai pode saber quando o filho terminou de carregar os dados?

Meu pai se parece com isso:

<div *ngIf="isLoadingFlg">Loading...</div>

<router-outlet></router-outlet>

De alguma forma, preciso que o componente filho consiga definir o componente pai isLoadingFlg. O componente filho se parece com isto:

ngOnInit() {
  this.isLoadingFlg = true;
  setTimeout(() => {
    this.isLoadingFlg = false;
  }, 1000);
}
angular
  • 1 respostas
  • 36 Views
Martin Hope
윤효준
Asked: 2025-04-12 03:57:49 +0800 CST

Como configurar estilos de fonte com @theme no Tailwind CSS v4

  • 7

Eu usei tailwind.config.jsassim:

export default {
  theme: {
    extend: {
      fontSize: {
        'heading-banner-title': ['88px', { lineHeight: '100px', fontWeight: '700' }],
      },
    },
  },
};

Agora quero usar a mesma configuração no Tailwind v4, mas usando @theme:

@theme {
  --text-heading-banner-title: 88px; /* I also want to add line-height and font-weight */
}

Anteriormente, eu estava usando o seguinte estilo:

.text-heading-banner-title {
  @apply text-[88px] leading-[100px] font-bold;
}

Entretanto, ao usar essa abordagem, prefixos responsivos (por exemplo, sm:text-heading-banner-title) não funcionam como esperado.

tailwind-css
  • 1 respostas
  • 22 Views
Martin Hope
bers
Asked: 2025-04-12 03:03:24 +0800 CST

Por que não posso especializar std::formatter dentro do meu namespace?

  • 5

Quero me especializar std::formatterdentro do meu namespace. No entanto, isso não funciona como eu gostaria (variante 1). Funciona fora do namespace (variante 3), bem como com uma solução alternativa dentro do namespace (variante 2).

#include <format>
#include <iostream>
#include <string>
#include <type_traits>

class Class {};

#define VARIANT 1

namespace Namespace {

#if VARIANT == 1
template <>
struct std::formatter<Class> : std::formatter<std::string> {
    auto format(const Class& Class, auto& context) const {
        return std::formatter<std::string>::format("CLASS", context);
    }
};
#endif

#if VARIANT == 2
template <typename T>
    requires std::same_as<T, Class>
struct std::formatter<T> : std::formatter<std::string> {
    auto format(const Class& Class, auto& context) const {
        return std::formatter<std::string>::format("CLASS", context);
    }
};
#endif

}  // namespace Namespace

#if VARIANT == 3
template <>
struct std::formatter<Class> : std::formatter<std::string> {
    auto format(const Class& Class, auto& context) const {
        return std::formatter<std::string>::format("CLASS", context);
    }
};
#endif

int main() { std::cout << std::format("{}", Class()) << std::endl; }

Isto está no x64 msvc v19.40 VS17.10. gcc compila apenas a variante 3.

Então, minhas perguntas são: quais são as formas portáteis e em conformidade com os padrões de especialização std::formatterdentro de namespaces (ou em geral)?

c++
  • 1 respostas
  • 109 Views
Martin Hope
hbstha123
Asked: 2025-04-12 02:23:33 +0800 CST

Como posso classificar a ordem do índice com base na minha preferência em dataframes pandas multi-índice?

  • 7

Tenho um dataframe Pandas df. Ele possui múltiplos índices com Gx.Region e Scenario_Model. O índice Scenario_Model é ordenado em ordem alfabética: des, pes, tes. Quando o ploto, ele aparece na mesma ordem. No entanto, quero reordená-lo como pes, tes e des, e plotá-lo de acordo. É possível fazer isso no dataframe Pandas em Python?

    dict = {('Value', 2023, 'BatteryStorage'): {('Central Africa', 'des'): 0.0,
  ('Central Africa', 'pes'): 0.0,
  ('Central Africa', 'tes'): 0.0,
  ('Eastern Africa', 'des'): 0.0,
  ('Eastern Africa', 'pes'): 0.0,
  ('Eastern Africa', 'tes'): 0.0,
  ('North Africa', 'des'): 0.0,
  ('North Africa', 'pes'): 0.0,
  ('North Africa', 'tes'): 0.0,
  ('Southern Africa', 'des'): 504.0,
  ('Southern Africa', 'pes'): 100.0,
  ('Southern Africa', 'tes'): 360.0,
  ('West Africa', 'des'): 0.0,
  ('West Africa', 'pes'): 0.0,
  ('West Africa', 'tes'): 0.0},
 ('Value', 2023, 'Biomass PP'): {('Central Africa', 'des'): 0.0,
  ('Central Africa', 'pes'): 0.0,
  ('Central Africa', 'tes'): 0.0,
  ('Eastern Africa', 'des'): 40,
  ('Eastern Africa', 'pes'): 10,
  ('Eastern Africa', 'tes'): 50,
  ('North Africa', 'des'): 0.0,
  ('North Africa', 'pes'): 0.0,
  ('North Africa', 'tes'): 0.0,
  ('Southern Africa', 'des'): 90.0,
  ('Southern Africa', 'pes'): 43.0,
  ('Southern Africa', 'tes'): 50.0,
  ('West Africa', 'des'): 200.0,
  ('West Africa', 'pes'): 150.0,
  ('West Africa', 'tes'): 100}}

df_sample = pd.DataFrame.from_dict(dict)
df_sample.plot(kind = "bar",
               stacked = True)

insira a descrição da imagem aqui

python
  • 1 respostas
  • 37 Views
Martin Hope
C3ISR - Everything Cybersecuri
Asked: 2025-04-12 01:23:47 +0800 CST

Como animar a exibição da tabela: nenhum / bloco? [duplicado]

  • 0
Esta pergunta já tem respostas aqui :
Transições na propriedade de exibição CSS (43 respostas)
Fechado há 21 horas .

CodePen: https://codepen.io/C3ISR-Everything-Cybersecurity/pen/azbeOEK

o que estou tentando fazer é ter um pouco de animação ou transição revelada quando o usuário clica no acordeão para exibir a tabela, código completo abaixo HTML CSS JS, quero animar a transição de abertura e fechamento das tabelas no acordeão.

Código completo:

HTML:

            var acc = document.getElementsByClassName("accordion");
            var i;

            for (i = 0; i < acc.length; i++) {
                acc[i].addEventListener("click", function() {
                    this.classList.toggle("active");
                    var panel = this.nextElementSibling;
                    if (panel.style.display === "block") {
                        panel.style.display = "none";
                    } else {
                        panel.style.display = "block";
                    }
                });
            }
       body {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            background-color: White;
            font-family: Sakkal Majalla;
            direction: rtl;
            position: relative;
            z-index: -2;
            -ms-overflow-style: none;
            
        }
        body::-webkit-scrollbar, body::-webkit-scrollbar-button { display: none; } /* Chrome */


        li {
            list-style: none;
        }

        a {
            text-decoration: none;
        }

        .main{    
            display: grid;
            grid-template-columns: 1fr;
            justify-items: center;
            margin-top: 2rem;
            margin-bottom: 1rem;
        }

        table {
            border: 1px solid #dededf;  
            table-layout: fixed;
            border-collapse: collapse;
            border-spacing: 1px;
            text-align: center;
        }

        th {
            border: 1px solid #dededf;
            background-color: #eceff1;
            color: #000000;
            padding: 5px;
        }

        td {
            border: 1px solid #dededf;
            background-color: #ffffff;
            color: #000000;
            padding: 5px;  
        }
        th:nth-child(1) {  
            width: 30.9rem;
        }

        th:nth-child(2) {  
            width: 10rem;
        }
        th:nth-child(3) {  
            width: 7rem;
        }

        .accordion {
            background-color: #ffffff;
            color: black;
            font-weight: bold;
            cursor: pointer;
            margin-top: 20px;
            padding: 18px;
            border: none;
            text-align: right;
            outline: none;
            font-size: 20px;
            transition: 0.4s;
            width: 50rem;
            border: 1px solid rgb(219, 219, 219);
            border-radius: 8px;
            box-shadow: rgba(100, 100, 111, 0.123) 0px 7px 29px 0px;
        }

        .active, .accordion:hover {
            border-radius: 8px 8px 0px 0px;
            border-color:  rgb(0, 128, 255);
        }

        .accordion span{
            float: left;
            font-size: 15px;
            color: #116ce4;
        }

        .panel {
            display: none;
            overflow: hidden;  
        }
   <div class="main">
            <button class="accordion">
                John Doe
            </button>
            <div class="panel">
                <table>
                    <th>company</th>
                    <th>department</th>
                    <th>2025?</th>
                    <tr>
                        <td>COMPANY A</td>
                        <td>FINANCE</td>
                        <td>&#9989;</td>
                    </tr>
                    <tr>
                        <td>COMPANY Z</td>
                        <td>PMO</td>
                        <td>&#10060;</td>
                    </tr>
                </table>
            </div>
                 <button class="accordion">
                John Doe
            </button>
            <div class="panel">
                <table>
                    <th>company</th>
                    <th>department</th>
                    <th>2025?</th>
                    <tr>
                         <td>company A</td>
                        <td>HR</td>
                        <td>&#10060;</td>
                    </tr>
                    <tr>
                       <td>company B</td>
                        <td>HR</td>
                        <td>&#10060;</td>
                    </tr>
                    <tr>
                          <td>company C</td>
                        <td>HR</td>
                        <td>&#10060;</td>
                    </tr>
                </table>
            </div>
                 <button class="accordion">
                John Doe
            </button>
            <div class="panel">
                <table>
                    <th>company</th>
                    <th>department</th>
                     <th>2025?</th>
                    <tr>
                        <td>company A</td>
                        <td>HR</td>
                        <td>&#9989;</td>
                    </tr>
                </table>
            </div>       
    </div>

javascript
  • 2 respostas
  • 44 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve