<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://gsys.info/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://gsys.info/feed.php">
        <title>Genesys notes:interface</title>
        <description></description>
        <link>http://gsys.info/</link>
        <image rdf:resource="http://gsys.info/lib/tpl/genesys/images/favicon.ico" />
       <dc:date>2026-05-01T22:43:23+02:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:interface:interface&amp;rev=1722502216&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:interface:scope&amp;rev=1464174372&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:interface:set&amp;rev=1464175558&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://gsys.info/lib/tpl/genesys/images/favicon.ico">
        <title>Genesys</title>
        <link>http://gsys.info/</link>
        <url>http://gsys.info/lib/tpl/genesys/images/favicon.ico</url>
    </image>
    <item rdf:about="http://gsys.info/doku.php?id=notes:interface:interface&amp;rev=1722502216&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-01T10:50:16+02:00</dc:date>
        <title>notes:interface:interface</title>
        <link>http://gsys.info/doku.php?id=notes:interface:interface&amp;rev=1722502216&amp;do=diff</link>
        <description>interface

Ein interface kann generisch sein, muss aber nicht.


operator $ is interface
{
  operator $ as string;    // allgemein
};

calc is interface 
{
  operator + ( lhs, rhs is this\ ) as this\;  // generisch
  operator + ( lhs, rhs is this\ ) as this\;
};


int = 0 with { operator $; calc };</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:interface:scope&amp;rev=1464174372&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-05-25T13:06:12+02:00</dc:date>
        <title>notes:interface:scope</title>
        <link>http://gsys.info/doku.php?id=notes:interface:scope&amp;rev=1464174372&amp;do=diff</link>
        <description>Scope

Ein Scope ist ein Refactoring-Werkzeug. Die Idee dahinter ist, einen Teil, den man in eine Funktion oder Methode auslagern möchte zunächst erstmal mit einem Scope zu belegen.


main is code()
{
  a is 1;
  b is 2;
  c is 3;
  
  result is int;
  
  result : a + b;
  
  print result;
}</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:interface:set&amp;rev=1464175558&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-05-25T13:25:58+02:00</dc:date>
        <title>notes:interface:set</title>
        <link>http://gsys.info/doku.php?id=notes:interface:set&amp;rev=1464175558&amp;do=diff</link>
        <description>Set bei Funktionen

Set kommt bei Funktionen sich mit der Zuweisung in die Quere, wenn die Funktion eine Referenz zurückliefert.


func(a is int) as int ref :=
{
  static array is int[10];
  
  return array[a];
}

func(0) : 4;


Wenn eine Referenz zurückgeliefert wird, wird automatisch ein Setter angelegt:</description>
    </item>
</rdf:RDF>
