Update 'Interface Definitions'
parent
ac645d78b0
commit
96e3c59673
21
Interface-Definitions.md
Normal file
21
Interface-Definitions.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Syntax
|
||||||
|
```
|
||||||
|
face ro ReadWriter:Face
|
||||||
|
write
|
||||||
|
> data:{Byte ..}
|
||||||
|
< wrote:Int
|
||||||
|
< err:Error
|
||||||
|
read
|
||||||
|
> into:{Byte ..}
|
||||||
|
< read:Int
|
||||||
|
< err:Error
|
||||||
|
```
|
||||||
|
|
||||||
|
Interface sections contain a list of behaviors. Behaviors are a name followed by an indented block of inputs and outputs. It is essentially a more stripped down version of function syntax.
|
||||||
|
|
||||||
|
# Semantics
|
||||||
|
Interfaces in ARF are like interfaces in Go, that is to say, their methods are
|
||||||
|
defined and any object that has at least those methods can fulfill that
|
||||||
|
interface.
|
||||||
|
|
||||||
|
Interfaces are able to inherit other interfaces using type notation. If an interface inherits nothing, it must inherit `Face`, which is a blank interface.
|
Reference in New Issue
Block a user