This’s my Hello World on Solidity:


// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.6 < 0.9.0;

contract TaskContract {
    uint nextId;

    struct Task {
        uint id;
        string name;
        string description;
    }
    Task[] tasks;

    function createTask (string memory _name, string memory _description) public {
        tasks.push(Task(nextId, _name, _description));
        nextId++;
    }
    function findIndex(uint _id) internal view returns (uint) {
            for (uint i=0;i < tasks.length; i++){
        if (tasks[i].id == _id){
            return i;
            }
        }
        revert('Task not found');
    }
    function readTask(uint _id) public view returns (uint, string memory, string memory) {
// _id ---> variable local
        uint index = findIndex(_id);
        return (tasks[index].id, tasks[index].name, tasks[index].description);
    }

    function updateTask(uint _id, string memory _name, string memory _description) public {
        uint index = findIndex(_id);
        tasks[index].name = _name;
        tasks[index].description = _description;
    }

    function deleteTask(uint _id) public{
        uint index =findIndex(_id);
        delete tasks[index];
    }

}

Tutorial followed: Solidity SCRUD