This commit is contained in:
wagslane
2023-05-01 15:25:27 -06:00
parent f8912668b8
commit 9be3074de6
868 changed files with 58698 additions and 2 deletions

View File

@@ -0,0 +1,8 @@
{
"question": "Why would you name your interface's method's parameters?",
"answers": [
"Readability and clarity",
"Execution speed",
"Memory savings"
]
}

View File

@@ -0,0 +1,23 @@
# Name Your Interface Arguments
Consider the following interface:
```go
type Copier interface {
Copy(string, string) int
}
```
Based on the code alone, can you deduce what *kinds* of strings you should pass into the `Copy` function?
We know the function signature expects 2 string types, but what are they? Filenames? URLs? Raw string data? For that matter, what the heck is that `int` that's being returned?
Let's add some named arguments and return data to make it more clear.
```go
type Copier interface {
Copy(sourceFile string, destinationFile string) (bytesCopied int)
}
```
Much better. We can see what the expectations are now. The first argument is the `sourceFile`, the second argument is the `destinationFile`, and `bytesCopied`, an integer, is returned.