Array.length как ключ для функции (солидность)

Мои извинения за вопрос новичка, однако я пытаюсь изучить кодирование и не имею других способов найти решение. Я ищу способ добавить уникальный ключ к результату функции, чтобы я мог иметь другие итерации той же функции, чтобы ссылаться на нее, если это необходимо.

Пожалуйста, найдите код ниже. Когда я запускаю код в его нынешнем виде, он продолжает запрашивать значение, которое будет введено пользователем, в то время как я ищу код, чтобы не спрашивать пользователя, а использовать значение, полученное из функции gettid().

Поскольку я явно очень новичок в кодировании, поэтому я также открыт для предложений по улучшению идентификатора ключа (он должен быть уникальным, и хотя мой подход прост, он должен создавать уникальные значения).

// SPDX-идентификатор лицензии: MIT

прочность прагмы ^0,8,0;

пример договора {

struct Input{
    uint256 gettid;
    string title1;
    string title2;
    string title3;
    string title4;
    string title5;
}
Input[] public inputsArray;

function gettid() public view returns(uint256) {
return inputsArray.length;
}

function addinput(
    uint256 _gettid,
    string memory _title1,
    string memory _title2,
    string memory _title3,
    string memory _title4,
    string memory _title5
    
) public {
    inputsArray.push(Thread(_gettid, _title1, _title2, _title3, _title4, _title5));
}}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
14
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете вызвать функцию gettid() и сохранить возвращаемое значение во временном uint, а затем поместить временный uint в массив. Что-то вроде этого:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract example{

struct Input{
    uint256 gettid;
    string title1;
    string title2;
    string title3;
    string title4;
    string title5;
}
Input[] public inputsArray;

function gettid() public view returns(uint256) {
return inputsArray.length;
}

function addinput(
    string memory _title1,
    string memory _title2,
    string memory _title3,
    string memory _title4,
    string memory _title5
    
) public {
    uint256 _nextId = gettid();
    inputsArray.push(Thread(_nextId, _title1, _title2, _title3, _title4, _title5));
}}

Другие вопросы по теме