Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Function declaration and syntax in Blockchain / Solidity - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Function declaration and syntax
Start
↓
Declare function with name and parameters
↓
Define function body with statements
↓
Function ready to be called
↓
Call function with arguments
↓
Execute function body
↓
Return value or end
↓
End
This flow shows how a function is declared, then called, and how it runs its code and returns a result.
Execution Sample
Blockchain / Solidity
function greet(name) {
  return "Hello, " + name + "!";
}

let message = greet("Alice");
console.log(message);
This code declares a function greet that takes a name and returns a greeting message, then calls it with "Alice" and prints the result.
Execution Table
StepActionEvaluationResult
1Declare function greet with parameter nameFunction greet createdFunction ready to be called
2Call greet with argument "Alice"name = "Alice"Function execution starts
3Execute return statement"Hello, " + "Alice" + "!""Hello, Alice!"
4Assign return value to messagemessage = "Hello, Alice!"message holds "Hello, Alice!"
5Print messageconsole.log(message)Output: Hello, Alice!
6End of programNo more statementsProgram ends
💡 Program ends after printing the greeting message.
Variable Tracker
VariableStartAfter CallAfter ReturnFinal
nameundefined"Alice""Alice"undefined (local to function)
messageundefinedundefined"Hello, Alice!""Hello, Alice!"
Key Moments - 3 Insights
Why does the variable 'name' disappear after the function finishes?
Because 'name' is a parameter local to the function, it only exists during the function call (see execution_table step 3). After the function returns, 'name' is no longer accessible.
What happens if we call the function without parentheses?
Without parentheses, the function is not called but referenced as a value. The code in the function body does not run (see execution_table step 2 where parentheses trigger the call).
Why do we use 'return' inside the function?
'return' sends a value back to where the function was called (see execution_table step 3). Without return, the function returns undefined by default.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'message' after step 4?
Aundefined
B"Alice"
C"Hello, Alice!"
Dnull
💡 Hint
Check the 'Result' column in step 4 where 'message' is assigned the return value.
At which step does the function greet actually run its code?
AStep 3
BStep 2
CStep 1
DStep 5
💡 Hint
Look at the 'Action' and 'Evaluation' columns where the return statement is executed.
If we remove the 'return' statement, what will 'message' hold after the function call?
A"Hello, Alice!"
Bundefined
C"Alice"
DError
💡 Hint
Recall that without 'return', functions return undefined by default (see key_moments about return).
Concept Snapshot
Function declaration syntax:
function name(parameters) {
  // code
  return value;
}

- Declare function with name and parameters
- Use return to send back a value
- Call function with parentheses and arguments
- Local variables exist only during call
Full Transcript
This lesson shows how to declare a function in blockchain programming. First, you write the function keyword, then the function name and parameters inside parentheses. Inside curly braces, you write the code the function runs. The return statement sends a value back to where the function was called. When you call the function with parentheses and arguments, the code inside runs, and the return value can be saved in a variable. Variables inside the function only exist while it runs. This example shows a greet function that takes a name and returns a greeting message. The program calls greet with "Alice" and prints the result "Hello, Alice!".

Practice

(1/5)
1. What is the correct way to declare a function named transferFunds in a blockchain smart contract?
easy
A. transferFunds function() { }
B. function transferFunds() { }
C. func transferFunds() { }
D. def transferFunds() { }

Solution

  1. Step 1: Identify the common function declaration keyword

    In many blockchain languages like Solidity, functions start with the keyword function.
  2. Step 2: Check the syntax structure

    The correct syntax is function functionName() { }, so function transferFunds() { } is correct.
  3. Final Answer:

    function transferFunds() { } -> Option B
  4. Quick Check:

    Function declaration uses 'function' keyword [OK]
Hint: Look for 'function' keyword before name [OK]
Common Mistakes:
  • Using 'def' instead of 'function'
  • Placing 'function' after the name
  • Using 'func' which is not standard here
2. Which of the following is the correct syntax to declare a function with one parameter named amount?
easy
A. function send(amount) { }
B. function send amount { }
C. function send(amount) => { }
D. function send[amount] { }

Solution

  1. Step 1: Recognize parameter syntax in function declaration

    Parameters are placed inside parentheses separated by commas if multiple.
  2. Step 2: Validate each option's syntax

    function send(amount) { } uses parentheses correctly: function send(amount) { }. Others misuse brackets, arrows, or omit parentheses.
  3. Final Answer:

    function send(amount) { } -> Option A
  4. Quick Check:

    Parameters go inside parentheses [OK]
Hint: Parameters always go inside parentheses () [OK]
Common Mistakes:
  • Omitting parentheses around parameters
  • Using square brackets instead of parentheses
  • Using arrow syntax incorrectly
3. What will be the output of this function call in a blockchain smart contract?
function multiply(x, y) { return x * y; }
multiply(3, 4);
medium
A. 7
B. Error
C. 34
D. 12

Solution

  1. Step 1: Understand the function logic

    The function multiplies two inputs x and y and returns the product.
  2. Step 2: Calculate the result for inputs 3 and 4

    3 multiplied by 4 equals 12.
  3. Final Answer:

    12 -> Option D
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Multiply inputs as given to get output [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating numbers as strings
  • Assuming syntax error without checking code
4. Identify the error in this function declaration:
function deposit(amount) {
balance += amount
}
medium
A. Missing semicolon after statement
B. Function name is invalid
C. No return statement in function
D. Missing parentheses around parameter

Solution

  1. Step 1: Check syntax inside the function body

    Statements inside functions usually require semicolons to end lines.
  2. Step 2: Identify missing semicolon

    The line balance += amount lacks a semicolon at the end.
  3. Final Answer:

    Missing semicolon after statement -> Option A
  4. Quick Check:

    Statements need semicolons [OK]
Hint: Check for missing semicolons inside function body [OK]
Common Mistakes:
  • Ignoring semicolon requirements
  • Thinking return is mandatory
  • Assuming function name is wrong
5. You want to create a function calculateFee that takes a transaction amount and returns 2% fee only if the amount is above 1000. Which is the correct function?
hard
A. function calculateFee(amount) { if amount > 1000 then return amount * 0.02 else return 0; }
B. function calculateFee(amount) { return amount * 0.02 if amount > 1000 else 0; }
C. function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } }
D. function calculateFee(amount) { if (amount > 1000) return amount * 0.02; }

Solution

  1. Step 1: Understand conditional return logic

    The function must check if amount is greater than 1000 and return 2% fee; otherwise, return 0.
  2. Step 2: Validate syntax correctness

    function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } } uses proper if-else syntax with braces and returns both cases correctly. Others have syntax errors or missing else return.
  3. Final Answer:

    function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } } -> Option C
  4. Quick Check:

    Use if-else with braces for conditional returns [OK]
Hint: Use full if-else with braces for clear returns [OK]
Common Mistakes:
  • Missing else return causes undefined output
  • Incorrect if syntax without parentheses or braces
  • Using Python-style if-else in blockchain code
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard